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