2015-12-08 47 views
0

我在python 2.7上,並試圖從位於同一類中的另一個函數調用成員函數。無法在類python中調用成員函數

class Foo: 

    def bar(self): 
     print 'correctly called' 

    def baz(self): 
     self.bar 


a = Foo() 
a.baz() 

我通過this問題去了,寫了一個示例類如上,但仍然無法打印"correctly called"位於功能bar。這可能聽起來不怎麼樣,但我認爲這是調用成員函數的唯一方法,還是我做錯了什麼?

我想

我只是想打電話給位於bar功能從同一類的其他成員函數baz打印語句。

+1

'self.bar()'... – Maroun

回答

2

要調用函數,使用括號:

class Foo: 
    def bar(self): 
     print('correctly called') 

    def baz(self): 
     self.bar() # <--() 

當你寫self.bar,這是評價一個函數對象的表達式。如果您想將函數對象傳遞給map等,這很有用。

+0

對不起,我完全錯過了它。感謝您的回答和編輯。我明白了什麼和爲什麼不起作用。 – Dhruvify

1

調用具有()的方法:

self.bar() 

self.bar是訪問該對象。需要括號來實際調用它。

+0

感謝這解決了它。 – Dhruvify

+0

@phihag抱歉遲到接受。起初它讓我等了12分鐘,之後我完全忘了。我現在已經完成了。感謝您的努力。 – Dhruvify