Maison  >  Questions et réponses  >  le corps du texte

python - Lors de l'appel polymorphe d'une méthode, la méthode liée s'affiche...

classProgrammer(objet):

hobby='play computer'

def __init__(self,name,age,weight):
    self.name=name
    self._age=age
    self.__weight=weight

def self_intro(self):
    print 'my name is %s \nI am %s years old\n' % (self.name, self._age)

classe BackendProgramer(Programmeur):

def __init__(self,name,age,weight,language):
    super(BackendProgramer,self).__init__(name,age,weight)
    self.language = language

def self_intro(self):
    print 'my name is %s \nmy favourite language is %s\n' % (self.name, self.language)

def intro(f):

if isinstance(f,Programer):
    print f.self_intro

si __name__=='__main__' :

prog = Programer('Albert',25,'80')
back_prog = BackendProgramer('Alex',23,'80','Ruby')
intro(prog)
intro(back_prog)

Le résultat en cours d'exécution est :
<méthode liée Programer.self_intro de l'objet <__main__.Programer à 0x02505330>>
<méthode liée BackendProgramer.self_intro de l'objet <__main__.BackendProgramer à 0x02505370>>

Excusez-moi pourquoi le résultat en cours n'est pas mon nom est...

怪我咯怪我咯2686 Il y a quelques jours908

répondre à tous(1)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:27:43

    Parce que tu as oublié d'appeler

    def intro(f):
        if isinstance(f,Programer):
            print f.self_intro()   # 没有()只是函数对象而已, 加了()才是调用

    répondre
    0
  • Annulerrépondre