问答详情
源自:4-5 Python类的__slots__方法

__slots__为什么没有报错,依然赋值了没有的age

class Person:

    __slots__ = ('name','gender')

    def __init__(self,name,gender):

        self.name = name

        self.gender = gender


class Student(Person):

    __slots__ = ('name', 'gender','score')

    def __init__(self, name, gender,score):

        super().__init__(name, gender)

        self.score = score


Student.age = 12

s = Student('qrh','男',88)


print(s.name,s.gender,s.score,s.age) #》》qrh 男 88 12


提问者:qirenhou 2022-04-26 22:28

个回答

  • 土斤土斤
    2023-01-13 17:09:38

    __slots__ 只能限制为实例对象动态添加属性和方法,而无法限制动态地为类添加属性和方法。因为你是直接往类里面添加属性和方法,所以实例s能访问到age这个Student类的属性

  • qirenhou
    2022-04-26 22:32:00

    http://img4.mukewang.com/626802010001c5a613570618.jpg

    我已经晕掉了,为什么还是执行成功了呢,age的值,也打印出来了:12