python调用父类对象的几个方法
生活随笔
收集整理的這篇文章主要介紹了
python调用父类对象的几个方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
方法一:父類.__init__(self,...)調用,self不能省略,否則報錯
#coding=utf-8 class family(object):def __init__(self,host):self.host = hostdef printf(self):print('the hoster of the family is %s.'%self.host) class myfamily(family):member = []def __init__(self):family.__init__(self,host = 'xiaoli')#注意self必須有,否則報錯print('hi')def add_member(self,member):self.member.append(member)def print_member(self):print("there are %d member : %s"%(len(self.member),self.member)) m = myfamily() 輸出結果: r@r-Sys:~/python/now/review2$ python3 call_father1.py hi如果不加self,那么會出現如下報錯信息: r@r-Sys:~/python/now/review2$ python3 call_father1.py Traceback (most recent call last):File "call_father1.py", line 17, in <module>m = myfamily()File "call_father1.py", line 10, in __init__family.__init__(host = 'xiaoli') TypeError: __init__() missing 1 required positional argument: 'self'方法二:在子類初始化方法中,通過super()函數來調用父類(超類)的初始化方法,代碼如下,
#coding=utf-8 class family(object):def __init__(self,host):self.host = hostdef printf(self):print('the hoster of the family is %s.'%self.host) class myfamily(family):member = []def __init__(self):super(myfamily,self).__init__(host = 'xiaoli')#baohanselfprint('hi')def add_member(self,member):self.member.append(member)def print_member(self):print("there are %d member : %s"%(len(self.member),self.member)) m = myfamily()python3:子類調用父類構造函數的兩種方法:
第一種方法:
class People:def __init__(self, name, age):self.name = nameself.age = ageclass Student(People):def __init__(self, name, age, grade):super().__init__(name, age)self.grade = gradesuper().__init__(父類構造函數需要的參數,不包括self)
第二種方法:
父類.__init__(self,父類構造函數需要的參數)
class People:def __init__(self, name, age):self.name = nameself.age = ageclass Student(People):def __init__(self, name, age, grade):People.__init__(self, name, age)self.grade = grade這種方法需要將self作為參數傳遞。
?
總結
以上是生活随笔為你收集整理的python调用父类对象的几个方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python类基础知识注意点
- 下一篇: mysql 出现错误 Duplica