Discuss / Python / 使用__slots__ (类的属性白名单)

使用__slots__ (类的属性白名单)

Topic source

1,动态语言灵活性:创建class的实例后,可以给实例绑定任何属性和方法

    s.name='xx'

2,实例绑定方法可以用MethodType

     from types import MethodType

     s.get_age=MethodType(set_age,s)

3,给class绑定方法,所有实例都获得该方法

    Student.set_age = set_age

4,__slots__限制实例的属性

    class Student:

        __slots__ = ('name','age')

    实例只能绑定name,age属性

    子类不受限制,但如果子类中也设置了slots,则限制范围是子类+父类的slots


  • 1

Reply