2013-05-11 67 views
3

由於某些原因,'obj._max_value'和'obj._current_value'沒有設置。我看過很多教程,看起來我正確地做了。有誰知道它爲什麼不起作用?Python屬性修飾器不工作,爲什麼?

見代碼:https://gist.github.com/matthew-campbell/5561562

(Python 2.7版)


更新:

class Progress(): 

    @property 
    def progress_bar_length(self): 
    return self._progess_bar_length 

    @progress_bar_length.setter 
    def progress_bar_length(self, length): 
    self._progress_bar_length = length 

    @progress_bar_length.deleter 
    def progress_bar_length(self): 
    del self.progress_bar_length 
+3

不要使用大多數不相關的代碼示例,並且絕對不要將鏈接發佈到Gist。建議您將問題簡化爲基本要點,並在您的問題中發佈代碼示例(儘可能簡單)。 <10行代碼很容易證明您的問題。 – millimoose 2013-05-11 22:10:04

回答

19

property裝飾不與老式類工作。從object繼承你的班級以獲得新式班級:

class Progress(object): 
    # ... 
+0

謝謝,我希望更清楚地指出這一點。 – 2013-05-11 22:39:11

+1

@MattCampbell另外,Python不是Java。你很可能不需要所有這些屬性,它們只會減慢你的程序並使其更難以維護(因爲不必要的樣板)。 – user4815162342 2013-05-12 07:50:05