python物件導向

來源:互聯網
上載者:User

標籤:建立   沒有   end   eve   多繼承   fan   通用   proc   handler   

 

一、封裝


#物件導向:封裝
class Person:
def __init__(self,name,age):
"""
建構函式,類被調用的時候自動被執行。可以用來封裝各種通用的參數等.
self:調用方法的調用者的對象是誰就是誰
"""
self.name = name
self.age = age
self.gender = "man"
def show(self):
print("He is %s ,age: %s" %(self.name,self.age))

p1=Person("xiaofan",20)
p1.show()

 

二、繼承

 

#物件導向:繼承
class F: #父類,基類
def f1(self):
print(‘F.f1 . self: %s‘ %self) # 調用父類要給他傳self ,要麼自動傳,要麼手動傳
def f2(self):
print(‘F.f2‘)

class S(F): # 子類 ,衍生類別 ,繼承自 F 。 先在自己的類中找,沒有再去父類中找
def s1(self):
print(‘S.s1‘)
def f2(self): #重寫
pass
def f3(self):
super(S,self).f2()
#方法1:執行父類中的f2方法 。 super(子類名,調用者self)
F.f2(self)
# 方法2:執行父類中的f2方法 。執行對象self自動建立,執行分類方法要自己給他傳self
print(‘S.f3‘)
a = S()
a.s1()
a.f1() # 執行父類方法
a.f2()
a.f3()

# python多繼承:
# 當父類中有相同的方法時,繼承順序優先順序從左至右,找到則停止
# 繼承關係: a -> b -> c , a -> d
# 繼承順序: 從左(左邊的所有)-->右
# 繼承關係:a -> b -> c -> z , a -> d -> e -> z
# 繼承順序:從左(最上面的z,不找)-->右 --> 最後才找z


#多繼承:
class BaseReuqest:
def __init__(self):
print(‘BaseReuqest.init‘)
class RequestHandler(BaseReuqest):
def __init__(self):
print(‘RequestHandler.init‘)
BaseReuqest.__init__(self)
def serve_forever(self):
print(‘RequestHandler.serve_forever‘)
self.process_request()
#此處會調用哪個process_request()呢
# self,是obj , obj== 調用者 。 那麼肯定是執行Minx中的process_request()的
# 注意看 self 是哪個類的對象,然後回到那裡去找
def process_request(self):
print(‘RequestHandler.process_request‘)
class Minx:
def process_request(self):
print(‘minx.process_request‘)
class Son(Minx, RequestHandler):
pass
obj=Son()
# 執行個體化Son的對象,Son()繼承Minx,和RequestHandler。
# 執行 RequestHandler的初始化方法
obj.serve_forever()
# 執行RequestHandler父類BaseReuqest的初始化方法
# 執行RequestHandler的server_forever()
# 執行 Minx的process_request() 方法

三、多態

#多態:傳入的參數不同類型執行的方法不一樣
#在python中不需要考慮多態,python原生就是多態的

 

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.