【发布时间】:2013-01-19 20:30:41
【问题描述】:
所以我有以下代码,我正在尝试将某种元数据添加到类的属性中。我的想法是我会有一个 getter/setter,其中 getter 将返回一个 float/int/string 私有变量,但会返回一些额外的数据,例如详细的名称。
这在我使用 setter 之前非常有效,一旦使用似乎忽略了 setter 和 getter。
有谁知道为什么我正在做的事情不起作用?或者是否有更好的方法来完成我想做的事情?
非常感谢!
class Param(float):
def __new__(self,name,value):
return float.__new__(self,value)
def __init__(self,name,value):
self.__name = name
name = property(lambda self: self.__name)
class Beer:
def __init__(self, temp):
self.__T = temp
@property
def temp(self):
return Param('Beer Temperature', self.__T)
@temp.setter
def temp(self,value):
self.__T = float(value)
print b.temp.name, b.temp.__class__
print b.temp * 4.5
print b.temp.name, b.temp.__class__
b.temp = 101
print b.temp.name, b.temp.__class__
【问题讨论】:
标签: python properties metadata setter getter