关于python中的属性类

2024-04-19 11:14:44 发布

您现在位置:Python中文网/ 问答频道 /正文

在寻找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)的构造阶段,类成员temperaturesetter被调用,即set_temperature()。这个解释是有道理的,但是在我自己的计算机中,运行这个代码段之后,我没有得到任何输出。这里有什么问题吗?我的python版本是ubuntu14.04中的2.7.6。你知道吗


Tags: toselfgetreturninitvaluedef教程