Python动态语言

2017-02-08  本文已影响0人  FangHao

python

说Python是动态语言,是由于Python可以在代码运行中可以做更改,但是像C、Java之类的需要编译的语言,由于做过编译就不可以做修改了,所以是静态语言。但是像Python、PHP、Ruby之类的动态语言执行效率会不如静态语言快,毕竟中间有一层解释器。
示例代码如下:

#coding=utf-8
import types

class Person(object):
num = 100
pass

p1 = Person()
# 给对象传递属性
p1.name = 'xiaohua'
print(p1.name)
# 给类传递属性
Person.pname = 'human'
print(Person.pname)
print(p1.pname)

print('----------------------------')

def test1(self):
print('--------------self-test1')

def test2(cls):
print('--------------cls-test2')
print(cls.num)

@staticmethod
def test3():
print('--------------test3')

# 添加实例方法
p1.test1 = types.MethodType(test1,p1,Person)
# 添加类方法
Person.test2 = types.MethodType(test2,Person,type)
# 添加静态方法,这里不能使用types来创建,不然会报一个:没有参数却多传了一个参数的错误
Person.test3 = test3

p1.test1()
p1.test2()
p1.test3()

#del p1.test1
delattr(p1,test1)

p1.test1()

slots

由于python是个动态语言,有时候人们不想让运行的代码做修改,__slots__就是起到了这个作用。

但是由于__solts__是个私有属性,所以如果一个子类集成了这个父类,子类是可以随意增加属性的

上一篇 下一篇

猜你喜欢

热点阅读