2016-11-15 67 views
2

嗯,我很喜欢python,现在我尝试将c#代码转换为IronPython。 有问题,属性:IronPython中的属性:永恒循环

这里是我的示例类(从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 

当我试图从另一个类得到这个属性这样

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

我通过打印“获取价值”和最终的StackOverflowException获得了一个永恒的调用。属性有什么问题?这是用ref参数翻译getter和setter的一小块任务,但是我不能继续这个错误。 enter image description here

回答

4

你的getter和setter应该返回/设置自我。温度(背景场),而不是self.temperature(属性) - 通过自引用,会导致无限循环。

+0

是的,你说得对。我的错误) – ArgorAvest