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>>
請(qǐng)問為什么運(yùn)行結(jié)果不是my name is ...
問題解答
回答1:因?yàn)槟阃浾{(diào)用了
def intro(f): if isinstance(f,Programer):print f.self_intro() # 沒有()只是函數(shù)對(duì)象而已, 加了()才是調(diào)用
相關(guān)文章:
1. javascript - 百度echarts series數(shù)據(jù)更新問題2. MySQL客戶端吃掉了SQL注解?3. python小白的基礎(chǔ)問題 關(guān)于while循環(huán)的嵌套4. css3 - [CSS] 動(dòng)畫效果 3D翻轉(zhuǎn)bug5. javascript - JS設(shè)置Video視頻對(duì)象的currentTime時(shí)出現(xiàn)了問題,IE,Edge,火狐,都可以設(shè)置,反而chrom卻...6. java - 我設(shè)置了cookie的max age,但是cookie依然在關(guān)閉游覽器后消失了7. java固定鍵值轉(zhuǎn)換,使用枚舉實(shí)現(xiàn)字典?8. php自學(xué)從哪里開始?9. phpstady在win10上運(yùn)行10. 求大神幫我看看是哪里寫錯(cuò)了 感謝細(xì)心解答
