IronPython 中的属性:永恒循环

Properties in IronPython: eternal loop

好吧,我在 python 方面非常菜鸟,现在我尝试将 c# 代码翻译成 IronPython。 属性有问题:

这是我的 class 示例(从 http://www.programiz.com/python-programming/property 获取):

class SomeClass(object):

    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):
        print("Setting value")
        self.temperature = value

当我尝试从另一个 class 中获取这个 属性 时

cb = SomeClass()
temp = cb.to_fahrenheit()

我通过打印 "Getting value" 和最后的 WhosebugException 得到了一个永恒的调用。属性有什么问题?这是使用 ref 参数翻译 getter 和 setter 的一小部分任务,但我无法继续处理此错误。

您的 getter 和 setter 应该是 returning/setting 自己。_温度(支持字段),而不是 self.temperature (the 属性) - 通过自我引用,你造成了无限循环。