【发布时间】:2018-06-19 18:48:41
【问题描述】:
我是 python 新手,我尝试创建一个以 get/set 作为属性的类。我从互联网上复制了一个简单的例子,似乎 Python 忽略了我的二传手。我是不是在做一些非常愚蠢的事情,因为我不明白为什么它不起作用。
我在 Linux 上运行 python 2.6.6。
谢谢
#!/usr/bin/python
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
c = Celsius()
c.temperature = -5555
print c.temperature
我在命令行中唯一拥有的是它打印 -5555。它完全忽略了我的二传手。
这快把我逼疯了,有什么想法吗?
【问题讨论】:
-
属性不适用于旧式类。如果您没有从其他任何东西继承,则从
object继承。 -
2018 年你有理由需要使用 Python 2.6 吗? Python 2.7,我可以理解,但 2.6 已经过了 EOL 大约 6 年了,我认为最后一个保持向后支持的发行版 LTS 在今年早些时候到期。
标签: python object attributes python-2.x python-2.6