1
我有点困惑如何获得和设置温度在这个属性装饰的代码。这是使用属性装饰器的正确方法吗?但是我不确定如何使用它。我可以调用c.temperature并返回初始值(0或任何我用来实例化类),但之后我无法使用set_temperature()设置温度。我看了几个关于这个话题的答案,但可能没有提到这一点。属性装饰吸尘器和二传手
class Celsius:
def __init__(self, temperature=0):
self._temperature = temperature
def to_f(self):
return self._temperature * 1.8 + 32
@property
def temperature(self):
print "Celsius:get_temperature"
return self._temperature
@temperature.setter
def temperature(self, value):
if value < -273:
raise ValueError("Temperature below -273 is impossible")
print "Celsius:set_temperature"
self._temperature = value
“但之后,我无法使用set_temperature()设置温度” - 为什么你期望有所谓的'set_temperature'?你从未用这个名字来定义任何东西。 – user2357112
实际上它不工作,即使只有c.temperature = 10例如,我想因为我没有继承对象(如下面的其他答案中所述) – user3079275