日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Day7 子类调用父类的方法supper 绑定方法与非绑定方法

發布時間:2025/3/17 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Day7 子类调用父类的方法supper 绑定方法与非绑定方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

supper:可以利用supper來重用父類的方法,可以不用指名道姓的調用了。

1 class OldboyPeople: 2 school = 'oldboy' 3 def __init__(self,name,age,sex): 4 self.name=name 5 self.age=age 6 self.sex=sex 7 8 def eat(self): 9 print('is eating') 10 def teach(self): 11 print('這是父類的teach') 12 13 class OldboyTeacher(OldboyPeople): 14 def __init__(self,name,age,sex,salary,title): 15 # OldboyPeople.__init__(self,name,age,sex) 16 #在Python2中需要寫全:super(OldboyTeacher,self) 17 supper()可以得到一個對象,是專門訪問父類的,是子類重用父類的方法 18 super().__init__(name,age,sex) 19 self.salary=salary 20 self.title=title 21 22 def teach(self): 23 # OldboyPeople.teach(self) 24 super().teach() 25 print('%s is teaching' %self.name) 26 print(OldboyTeacher.mro()) 27 28 egon_obj=OldboyTeacher('egon',18,'male',3.1,'沙河霸道金牌講師') 29 # print(egon_obj.title) 30 # print(egon_obj.__dict__) 31 egon_obj.teach()

supper:supper是依賴于繼承的。

?

?

class A:def test(self):super().test()class B:def test(self):print('B')class C(A,B):pass# a=A() # a.test()print(C.mro()) c=C() c.test()


C繼承了A和B,

先打印C的執行順序列表,如果表里邊有,然后再去按順序向后檢索。如果表里邊沒有,報錯。

?

?

?

綁定方法與非綁定方法:

綁定到類的方法:

  例如定義了一個類,然后從配置文件中讀取配置參數。

1 import settings #定義了一個settings的文件,文件里邊存儲了兩行配置信息,主機名和端口 2 3 class MySql: 4 def __init__(self,host,port): 5 self.host=host 6 self.port=port 7 8 @classmethod #不加這個參數,定義的是綁定給函數,加上這個參數,定義的是綁定給類。 9 def from_conf(cls): 10 print(cls) 11 # return cls(settings.HOST,settings.PORT) 12 13 def func1(self):pass 14 15 16 conn1=MySql('127.0.0.1',3306) 17 18 # print(MySql.from_conf) 19 # conn2=MySql.from_conf() 20 21 # print(conn1.host,conn2.host) 22 23 # print(conn1.func1) 24 # print(conn1.from_conf) 25 # print(MySql.from_conf) 26 27 28 # conn1.from_conf() 29 # MySql.from_conf()

?

?

非綁定方法:

產生一個不相關的值,與任意綁定都不存在。

1 import uuid 2 class MySql: 3 def __init__(self,host,port): 4 self.host=host 5 self.port=port 6 self.id=self.create_id() 7 8 # @classmethod 9 # def from_conf(cls): #綁定給類的 10 # print(cls) 11 # # return cls(settings.HOST,settings.PORT) 12 # 13 # def func1(self): #綁定給對象的 14 # pass 15 16 @staticmethod 17 def create_id(): #非綁定方法 18 return str(uuid.uuid1()) 19 20 21 conn1=MySql('127.0.0.1',3306) 22 conn2=MySql('127.0.0.2',3306) 23 conn3=MySql('127.0.0.3',3306) 24 # print(MySql.create_id) 25 # print(conn1.create_id) 26 27 print(conn1.id,conn2.id,conn3.id)

?

轉載于:https://www.cnblogs.com/sexiaoshuai/p/7374557.html

總結

以上是生活随笔為你收集整理的Day7 子类调用父类的方法supper 绑定方法与非绑定方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。