python - 多態(tài)調(diào)用方法時(shí)卻顯示bound method...
問題描述
class Programer(object):
hobby=’play computer’def __init__(self,name,age,weight): self.name=name self._age=age self.__weight=weightdef self_intro(self): print ’my name is %s nI am %s years oldn’ % (self.name, self._age)
class BackendProgramer(Programer):
def __init__(self,name,age,weight,language): super(BackendProgramer,self).__init__(name,age,weight) self.language = languagedef self_intro(self): print ’my name is %s nmy favourite language is %sn’ % (self.name, self.language)
def intro(f):
if isinstance(f,Programer): print f.self_intro
if __name__==’__main__’:
prog = Programer(’Albert’,25,’80’)back_prog = BackendProgramer(’Alex’,23,’80’,’Ruby’)intro(prog)intro(back_prog)
運(yùn)行結(jié)果是:<bound method Programer.self_intro of <__main__.Programer object at 0x02505330>><bound method BackendProgramer.self_intro of <__main__.BackendProgramer object at 0x02505370>>
請問為什么運(yùn)行結(jié)果不是my name is ...
問題解答
回答1:因?yàn)槟阃浾{(diào)用了
def intro(f): if isinstance(f,Programer):print f.self_intro() # 沒有()只是函數(shù)對象而已, 加了()才是調(diào)用
相關(guān)文章:
1. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?2. 請問關(guān)于 Java static 變量的問題?3. 跨類調(diào)用后,找不到方法4. 頁面用CSS3的scale屬性進(jìn)行了縮放,圖片模糊解決不了,那么字體能否讓它們不模糊呢?5. javascript - 微信IOS頁面中input type=number輸入數(shù)字無法顯示,安卓顯示正常6. 淺談vue生命周期共有幾個(gè)階段?分別是什么?7. javascript - 動(dòng)態(tài)添加路由報(bào)錯(cuò)8. ios - Crash Log 里關(guān)于微信SDK的問題9. javascript - hash為什么可以做路由跳轉(zhuǎn),不會刷新頁面10. $( "html" ).parent()方法返回一個(gè)包含document的集合,而$( "html" ).parents()返回一個(gè)空集合 哪位大神來解釋下?
