2016-11-15 13 views
2

まあ、私はPythonで非常にnoobです。そして今、私はIronPythonにC#コードを翻訳しようとしています。プロパティを持つ てきた問題:ここで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を印刷します。プロパティの何が問題なの?これはgetterとsetterをrefパラメータで変換するための少しの作業ですが、このエラーを先に進めることはできません。 enter image description here

答えて

4

あなたのゲッターとセッターは、自分自身を返す/設定する必要があります。 _ self.temperature(プロパティ)ではなく、温度(バッキングフィールド)です。自己参照によって、無限ループが発生しました。

+0

あなたは正しいです。私のバグ) – ArgorAvest