关于在 Python 中的同一类属性中是否使用下划线

为什么在这个例子中,有时作者对同一个属性使用self._temperatureand self.temperature(带和不带下划线)?


class Celsius:

    def __init__(self, temperature = 0):

        self._temperature = temperature


    def to_fahrenheit(self):

        return (self.temperature * 1.8) + 32


    @property

    def temperature(self):

        print("Getting value")

        return self._temperature


    @temperature.setter

    def temperature(self, value):

        if value < -273:

            raise ValueError("Temperature below -273 is not possible")

        print("Setting value")

        self._temperature = value


紫衣仙女
浏览 165回答 1
1回答

慕哥6287543

这里使用了两个单独的属性。_temperature是实例属性,temperature而是类属性,其值为property对象。访问temperature会触发一个作用于实例变量的方法调用_temperature。下划线的使用表示某些内容是“私有的”,不应直接访问。支持属性的属性名称是带有前缀的属性名称,这是一种常见约定_。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python