请不要笑。生无可恋。
这是一个带有 getter 和 setter 的 Python 类的规范示例(来自Wikipedia):
class Student(object):
# Initializer
def __init__(self, name):
# An instance variable to hold the student's name
self._name = name
# Getter method
@property
def name(self):
return self._name
# Setter method
@name.setter
def name(self, new_name):
self._name = new_name
现在我的版本没有装饰器:
class Student(object):
# Initializer
def __init__(self, name):
# An instance variable to hold the student's name
self._name = name
# Getter method
def name(self):
return self._name
name=property(fget=name)
# Setter method
def set_name(self, new_name):
self._name = new_name
name = property(fset=set_name)
...除了第二个版本不起作用。如果我们实例化 Student 类,例如Bob=Student('Bob')
Bob.name 会抛出 AttributeError:unreadable 属性。
我保证,一旦我的声望达到 10k,我将捐赠 100 分给那些在反对票开始涌入之前弯腰指出错误的好心人。