在寻找python中property
的教程时,我看到了如下python片段:
class Celsius:
def __init__(self, temperature = 0):
self.temperature = temperature
def to_fahrenheit(self):
return (self.temperature * 1.8) + 32
def get_temperature(self):
print("Getting value")
return self._temperature
def set_temperature(self, value):
if value < -273:
raise ValueError("Temperature below -273 is not possible")
print("Setting value")
self._temperature = value
temperature = property(get_temperature,set_temperature)
c = Celsius()
作者说运行这个片段将得到以下输出
Setting value
,因为在Celsius
实例(c
)的构造阶段,类成员temperature
的setter
被调用,即set_temperature()
。这个解释是有道理的,但是在我自己的计算机中,运行这个代码段之后,我没有得到任何输出。这里有什么问题吗?我的python版本是ubuntu14.04中的2.7.6
。你知道吗
在python2中,
class Celsius:
声明了一个旧样式的类,而属性对该类无效。使用class Celsius(object):
。你知道吗相关问题 更多 >
编程相关推荐