2016-11-15 63 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