【发布时间】:2021-08-11 21:55:12
【问题描述】:
我读过很多关于@property 的优点的文章,我真的很喜欢它们。作为一个简短的例子
class Foo:
def __init__(self):
self._foo_value = 'foo_value'
@property
def foo_value(self):
return self._foo_value
my_foo = Foo()
print(my_foo.foo_value)
但是,假设我知道我不想做花哨的事情,只获得Foo.foo_value 的值,我可以通过忽略@property 以更少的代码实现相同的行为,例如
class Foo:
def __init__(self):
self.foo_value = 'foo_value'
my_foo = Foo()
print(my_foo.foo_value)
在这种情况下仍然使用@property 有什么好处吗?
【问题讨论】:
-
你用“我想我知道@property 的所有优点”来打开问题,然后问“在这种情况下使用@property 有什么好处吗?”,这让我很困惑至于你在问什么。不,您的情况没有任何优势,因为它不需要使用
@property的任何“优势” -
其他语言实现“getter”和“setter”。在 Python 中你不需要需要它们 - 如果你需要确保在获取或设置参数时运行其他一些逻辑,
@property就在那里 -
是的 - 我明白你的意思,我会编辑问题以免造成进一步的混乱。我的意思是我基本上已经阅读了很多关于@property 并使用过几次知道的内容,但是我在互联网上能够找到的所有示例都没有涵盖这个特定的用例。无论如何,你的回答回答了我的问题,所以谢谢!
标签: python class properties