Python物件導向編程基礎

來源:互聯網
上載者:User

標籤:blog   div   int   而不是   name   沒有   參數   pre   自己   

物件導向關鍵詞:類,對象,執行個體,方法

物件導向三大特性:封裝,繼承,多態

class Foo:      # 定義類名    def f1(self):     # f1方法        print("success")obj = Foo()    # 建立對象obj.f1()          # 通過對象執行方法

類和對象的關係:

 

self參數是一個Python自動會傳值的參數,那個對象執行方法,self就是那個

class SQLhelp():    def __init__(self, a1, a2, a3):         # 此方法會自動執行,那個對象執行的方法,self就是那個        print("自動執行init")        self.host = a1        self.name = a2        self.pwd = a3    def find(self):        passobj1 = SQLhelp(‘c1.salt.com‘, ‘djc‘, ‘100‘)    # 參數分別對應a1,a2,a3print(obj1.host)

>>>
自動執行
c1.salt.com

  

 對象中封裝對象

 

class c1:    def __init__(self, name, obj):        self.name = name        self.obj = objclass c2:    def __init__(self, name, age):        self.name = name        self.age = age    def show(self):        print("MDZZ")class c3:    def __init__(self, a1):        self.aaa = a1c2_obj = c2("djc", 19)    # 要寫在c1類之前c1_obj = c1("sb", c2_obj)ret = c1_obj.obj.nameprint(ret)>>>djcc3_obj = c3(c1_obj)ret2 = c3_obj.aaa.obj.show()print(ret2)>>>MDZZ

  

 

 

 簡單單繼承

# 繼承相當於把父類的方法複製到了子類,而不是去父類裡拿

class f1: # 父類,基類 def show(self): print("f1") def foo(self): print(self.name)class f2(f1): # 子類,衍生類別 def __init__(self, name) self.name = nameobj = f2("djc")obj.foo()>>>djc

  

複雜單繼承

class f1:    def F1(self):        self.F2()                # 執行f2的F2    def F2(self):        print("f1,F2")class f2(f1):    def F3(self):                 self.F1()                 # 執行f1的F1    def F2(self):        print("f2,F2")obj = f2()obj.F3()       # 自己的方法優先,作為子類不要忽略繼承的父類的方法,如果自己沒有,才去父類裡面找>>>f2,F2

 

簡單多繼承

class c1:    def f2(self):        print("c1")class c2:    def f2(self):        print("c2")class c3(c2,c1):         # 左邊的優先    def f3(self):        passobj = c3()obj.f2()>>>c2

稍複雜多繼承

class c0:    def f2(self):        print("c0")class c1:    def f2(self):        print("c1")class c2(c0):    def f1(self):        print("c2")class c3(c2,c1):    def f3(self):        passobj = c3()obj.f2()>>>c0

  

 

複雜多繼承

 

class c_2:    def f2(self):        print("c_2")class c_1(c_2):    def f2(self):        print("c_1")class c0(c_2):    def f1(self):        print("c0")class c1(c_1):    def f1(self):        print("c1")class c2(c0):    def f1(self):        print("c2")class c3(c2,c1):    def f3(self):        passobj = c3()obj.f2()>>>c-1

 

 

 

class h5:    def forever(self):        self.run()class h4(h5):    def __init__(self):        pass    def run(self):        self.process()    def process(self):        print("h4")class h3(h4):    def __init__(self):        passclass h2:    def process(self):        print("h2")class A(h2, h3):    passobj = A()obj.forever()>>>h2

 

 

  

 

Python物件導向編程基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.