一般情况下,当定义了一个class,并且创建了一个class的实例后,可以给该实例绑定任何属性和方法。

python中的__slots__使用方法

以上的输出是:zhangtie

这是给实例绑定一个属性。

还可以给实例绑定方法:

python中的__slots__使用方法

以上的输出是:zhangtie , 23

但是如果要限制class的属性,例如只允许向class中添加name和age属性,就可以在定义class的时候,定义一个__slost__变量来限制class能添加的属性。

延续上面的栗子:

python中的__slots__使用方法

以上的输出是:

zhangtie

23

AttributeError: 'Student1' object has no attribute 'sex

会抛出这个异常就是因为没有在__slost__这个变量中添加sex这个属性。

!注意:__slots__定义的属性仅对当前类起作用,对继承的子类是不起作用的。

举个栗子:

python中的__slots__使用方法

以上的输出是:

zhangtie

23

man

#注意,子类的继承还是可以把方法绑定到类的实例上。

相关文章: