【发布时间】:2019-03-27 12:00:59
【问题描述】:
您可以将@property 装饰器用于实例变量,但您可以为类变量做类似的事情吗?
我有一个带有配置参数的Config 类,但是我现在需要一些配置变量,它们是其他类变量的函数。例如,
class Config:
foo = 1
bar = 2
@property
def baz():
return self.foo + 2*self.bar
print(Config.baz)
但这不起作用。它返回 builtin.property object> 而不是调用函数的返回值。有什么建议吗?
【问题讨论】:
-
你不想要
return self.foo + 2*self.bar吗? -
@DanGamble 是的,我想,但这不是问题所在。如果您尝试 Config.baz 它返回 <__builtin__.property object> 而不是调用函数的返回值。
-
我认为这必须是静态方法,它在没有实例化类的情况下被调用。
标签: python python-3.x class variables