本文主要是介绍Python之 __slots__ 的用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用__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 = 50
except AttributeError:traceback.print_exc()class ExtMyClass(MyClass):passext_cls = ExtMyClass()
ext_cls.age = 30
print(ext_cls.age)
这篇关于Python之 __slots__ 的用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!