2012-12-06 41 views
0

我有以下問題:如何在python中調用getter或setter?

self.myWrapper = wrapper.Wrapper 
    self.myWrapper.set_entities(self.myWrapper, self.testEntity) 

產生錯誤信息,所以不

self.myWrapper = wrapper.Wrapper 
self.myWrapper.set_entities(self.myWrapper, self.testEntity) 

的錯誤信息是:

TypeError: unbound method set_entities() must be called with Wrapper instance as first argument (got type instance instance instead)

這裏有什麼問題?差異在哪裏ob對象實例和類型實例?

回答

6

假設wrapper.Wrapper是一個類,您需要實際初始化一個實例。

self.myWrapper = wrapper.Wrapper() 

請注意括號。另外,請注意,這不是getter/setter調用的問題(儘管如果您將getter/setter模式用於成員屬性,您應該更多地閱讀Python,因爲它在大多數情況下不推薦使用Python),但而是實例與類和屬性訪問的問題。

+0

Jirg ..... sry我正在做python四周(之前我曾經做過Java)。 – user1862770

+0

我知道Java實例化了括號 - 只有當我學會了新的時候,我犯了一個愚蠢的錯誤 – user1862770

+2

你也不需要明確地傳遞'self';這是爲你完成的。 – katrielalex