与经典的getter+setter相比,@property
表示法有什么优势?程序员应该在哪些特定情况下选择使用其中一个而不是另一个?
具有属性:
class MyClass(object):@propertydef my_attr(self):return self._my_attr
@my_attr.setterdef my_attr(self, value):self._my_attr = value
没有属性:
class MyClass(object):def get_my_attr(self):return self._my_attr
def set_my_attr(self, value):self._my_attr = value