我对 Python 中的 @property 和 @value.setter 属性有些困惑。我研究了以下网站,我想我理解了基本概念。
https://www.programiz.com/python-programming/property
经过研究,我制作了以下示例程序,它运行良好。但是在以下情况下,即使我删除了@property 和@value.setter,它仍然可以正常工作。那么,当我们在上面两个方法中添加@property 和@value.setter 时,可能有什么不同呢?
#!/usr/bin/python
class TreeNode(object):
def __init__(self):
self._value = None
self._left_node = None
self._right_node = None
@property
def value(self):
return self._value
@value.setter
def value(self, value):
self._value = value
def main():
tree_node = TreeNode()
tree_node.value = 3
print (tree_node.value)
if __name__ == '__main__':
main()