python - Apabila memanggil kaedah secara polimorf, kaedah terikat dipaparkan...
怪我咯
怪我咯 2017-06-12 09:25:43
0
1
911

classProgrammer(objek):

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)

kelas BackendProgramer(Programer):

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

jika __nama__=='__utama__':

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

Hasil berjalan ialah:
<kaedah terikat Programer.self_intro of <__main__.Objek Pengaturcara pada 0x02505330>>
<kaedah terikat BackendProgramer.self_intro <__main__.BackendProgramer objek di 0x02505330>>

<kaedah terikat BackendProgramer.self_intro<__main__.BackendProgramer objek di 0x02

Maaf kenapa keputusan larian bukan nama saya...

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(1)
伊谢尔伦

Sebab terlupa nak call

def intro(f):
    if isinstance(f,Programer):
        print f.self_intro()   # 没有()只是函数对象而已, 加了()才是调用
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!