Python动态语言

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__是个私有属性,所以如果一个子类集成了这个父类,子类是可以随意增加属性的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容