Discuss / Python / 推荐一种符合python特点(pythonic)的方式来封装私有属性

推荐一种符合python特点(pythonic)的方式来封装私有属性

Topic source

使用@property和@x.setter装饰器

class Student:    def __init__(self, name, gender):        self.name = name        self.__gender = gender    @property    def gender(self):        return self.__gender    @gender.setter    def gender(self, value):
        # 此处为对参数做检查的逻辑        self.__gender = valuebart = Student('Bart', 'male')print(bart.gender)bart.gender = 'female'
class Student:
    def __init__(self, name, gender):
        self.name = name
        self.__gender = gender

    @property
    def gender(self):
        return self.__gender

    @gender.setter
    def gender(self, value):
        self.__gender = value


bart = Student('Bart', 'male')
print(bart.gender)
bart.gender = 'female'

  • 1

Reply