Python之 __slots__ 的用法

来源:互联网 发布:手机视频录播软件 编辑:程序博客网 时间:2024/06/07 13:55

使用__slots__限定class实例 能添加的属性

__slots__仅仅对当前的类实例起作用,对继承的子类不起作用。

知识点:

1、捕获异常最好使用traceback。

2、MethodType作用是将方法绑定到类上,并不是将方法直接写在类中,而是在内存中创建一个link指向外部的方法,在创建实例时候link也会得到复制。

import tracebackfrom types import MethodTypeclass MyClass(object):  __slots__ = ['name','set_name']def set_name(self,name):  self.name = namecls = MyClass()cls.name = 'Tom'cls.set_name = MethodType(set_name,cls)cls.set_name('Jerry')print(cls.name)try:  cls.age = 50except AttributeError:  traceback.print_exc()class ExtMyClass(MyClass):  passext_cls = ExtMyClass()ext_cls.age = 30print(ext_cls.age)