Discuss / Python / 添加了slots之后 不能使用封装的概念了,不知道怎么回事,有没有大佬解答

添加了slots之后 不能使用封装的概念了,不知道怎么回事,有没有大佬解答

Topic source

class Student(object):

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

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

        self.__name = name

        self.__age = age

        self.__gender = gender

s = Student('john', 16, 'male')

墨规

#2 Created at ... [Delete] [Delete and Lock User]

因为__slots__限制了属性类型,你定义的私有变量__name,__age,__gender并不在__slots__范围之内,不允许创建,将__slots__设定的属性集合改成你的私有变量名就可以了。

class Student(object):    __slots__ = ('__name', '__age', '__gender')    def __init__(self, name, age, gender):        self.__name = name        self.__age = age        self.__gender = genders = Student('john', 16, 'male')

  • 1

Reply