【发布时间】:2018-02-19 01:21:31
【问题描述】:
我正在努力填补我对 Python property() 理解的空白。
下面是我自己想出来的代码,理解property():
class Temperature:
def __init__(self, temp = 10):
self.set_temp(temp)
def to_farenheit(self):
return (self._temp * 1.8) + 32
def get_temp(self):
print "getting temperature value"
return self._temp
def set_temp(self, temp):
print "setting temperature value"
if temp < -237:
raise ValueError("this shud be above -273")
else:
self._temp = temp
temps = property(get_temp, set_temp)
我执行上面的类并执行以下操作:
>>> t = Temperature()
setting temperature value
>>> t.temps
getting temperature value
10
>>> t.temps = 13
>>> t.temps
13
>>> t.get_temp()
getting temperature value
10
>>>
正如您在上面看到的,当我尝试通过分配t.temps = 13 来设置temp 值时,set_temp() 函数没有被调用,我期望由于property() 功能而被调用。此外,我最终得到了变量 temp 的 2 个不同值
我错过了什么?
【问题讨论】:
标签: python class properties python-2.x