亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python面向?qū)ο蠡靖攀?/h1>
系統(tǒng) 2230 0


對(duì)象

我們可以通過(guò)以下幾點(diǎn)來(lái)描述對(duì)象
  • 它們表示所開(kāi)發(fā)的應(yīng)用程序內(nèi)的實(shí)體
  • 實(shí)體之間可以通過(guò)交互來(lái)解決現(xiàn)實(shí)世界的問(wèn)題
  • 例如,Person是實(shí)體,而Car也是實(shí)體。Person可以駕駛Car,從一個(gè)地方開(kāi)到另一個(gè)地方

類可以幫助開(kāi)發(fā)人員表現(xiàn)現(xiàn)實(shí)世界中的主體
  • 類可以定義對(duì)象的屬性和行為。屬性是數(shù)據(jù)成員,行為由成員函數(shù)表示。
  • 類包含了構(gòu)造函數(shù),這些函數(shù)的作用是為對(duì)象提供初始狀態(tài)。
  • 類就像模版一樣,非常易于重復(fù)復(fù)用。
例如,類Person可以帶有屬性name和age,同時(shí)提供成員函數(shù)gotoOffice(),以定義去辦公室工作的行為。

方法

以下幾點(diǎn)描述了方法在面向?qū)ο笾械淖饔谩?
  • 它們表示對(duì)象的行為
  • 方法可以對(duì)屬性進(jìn)行處理,從而實(shí)現(xiàn)所需的功能。
下面是python中的一個(gè)列子
            
              class Person(object):

  def __init__(self,name,age):
      self.name = name
      self.age = age

  def get_person(self):
      return "
              
                "%(self.name,self.age)

p = Person("John",32)
print("Type :",type(p),"內(nèi)存ID:",id(p))

              
            
          
運(yùn)行示列如下:

在這里插入圖片描述

面向?qū)ο缶幊痰闹饕拍睿?

封裝

  1. 對(duì)象的行為對(duì)于外部世界來(lái)說(shuō)是不可見(jiàn)的,或者說(shuō)對(duì)象的狀態(tài)信息是私密的。
  2. 客戶端不能通過(guò)直接操作來(lái)改變對(duì)著的內(nèi)部狀態(tài)。相反,客戶端需要通過(guò)發(fā)送信息來(lái)請(qǐng)求對(duì)象來(lái)改變其內(nèi)部狀態(tài)。對(duì)象可以根據(jù)請(qǐng)求的類型,通過(guò)特定的成員函數(shù)(例如 GET 或 POST)改變他們的內(nèi)部狀態(tài),以作出相應(yīng)的相應(yīng)。
  3. 在Python中,封裝(數(shù)據(jù)和方法隱藏)的概念不是隱式的,因?yàn)樗鼪](méi)有提供封裝的關(guān)鍵字,例如public,private,protected(在諸如C++或Java之類的語(yǔ)言中,都提供了這些關(guān)鍵字)。當(dāng)然,如果在變量或函數(shù)名前加前綴__,可以將其訪問(wèn)屬性變?yōu)樗接小?

多態(tài)

多態(tài)的特性主要如下:
  • 多態(tài)有倆種類型。
    • 對(duì)象根據(jù)輸入?yún)?shù)提供方法不同的實(shí)現(xiàn)。
    • 不同類型的對(duì)象可以使用相同的借口。
  • 對(duì)于Python來(lái)說(shuō) 多態(tài)是該語(yǔ)言的內(nèi)置功能。例如:操作符"+"可以應(yīng)用于倆個(gè)整數(shù)進(jìn)行加法運(yùn)算,也可以應(yīng)用于字符串來(lái)鏈接它們。在下面的示列中,字符串,元祖或列表都可以通過(guò)整數(shù)索引來(lái)訪問(wèn)。
它為我們展示了Python內(nèi)置類型的多態(tài):
            
              a = "John"
b = (1,2,3)
c = [3,4,5,6]
print(a[1],b[0],c[2])


            
          

繼承

以下幾點(diǎn)有助于我們更好地理解繼承過(guò)程
  • 繼承表示一個(gè)類可以繼承父類的(大部分)功能。
  • 繼承被描述為一個(gè)重用基類中定義的功能并允許對(duì)原始軟件的實(shí)現(xiàn)進(jìn)行獨(dú)立擴(kuò)展的選項(xiàng)。
  • 繼承可以利用不同類的對(duì)象之間的關(guān)系建立層次結(jié)構(gòu)。與Java不同,而Python支持多重繼承(繼承多個(gè)基類).
在下面的代碼示列中,類A是基類,類B繼承了類A的特性。因此,類B的對(duì)象可以訪問(wèn)類A的方法:
            
              class A:
	def a1(self):
		print("a1")
class B(A):
	def b(self):
		print("b")

b = B()
a.a1()

            
          

抽象

抽象的主要特征如下所示:
  • 它提供了一個(gè)簡(jiǎn)單的客戶端接口,客戶端可以通過(guò)該接口與類的對(duì)象進(jìn)行交互,并可以調(diào)用該接口中定義的各個(gè)方法。
  • 它將內(nèi)部類的復(fù)雜性抽象為一個(gè)接口,這樣的客戶端就不需要知道內(nèi)部實(shí)現(xiàn)了。
在下面的列子中,我們通過(guò)add()方法對(duì)類Adder的內(nèi)部細(xì)節(jié)進(jìn)行了抽象處理:
            
              class Adder:
	def __init__(self):
		self.sum = 0
	def add(self,value):
		self.sum += value
acc = Adder()
for i in range(99):
	acc.add(i)

print(acc.sum)

            
          

組合

組合是指以下幾點(diǎn)
  • 它是一種將對(duì)象或類組合成更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)或軟件實(shí)現(xiàn)的方法。
  • 在組合中,一個(gè)對(duì)象可用于調(diào)用其他模塊中的成員函數(shù),這樣一來(lái),無(wú)需通過(guò)繼承就可以實(shí)現(xiàn)基本功能的跨模塊使用。
在下面的示列中,類A的對(duì)象被組合到類B中:
            
              class A(object):
	def a1(self):
		print("a1")
class B(object):
	def a2(self):
		print("b")
		a().a1()

objectB = B()
objectB.b()

            
          

面向?qū)ο蟮脑O(shè)計(jì)原則

開(kāi)放封閉原則

開(kāi)發(fā)/封閉原則規(guī)定,類或者對(duì)象及其方法對(duì)于擴(kuò)展來(lái)說(shuō),應(yīng)該是開(kāi)放的,但是對(duì)于修改來(lái)說(shuō),應(yīng)該是封閉的。
簡(jiǎn)單來(lái)說(shuō),這意味著當(dāng)你開(kāi)發(fā)軟件應(yīng)用的時(shí)候,一定確保以通用的方式來(lái)編寫(xiě)類或者模塊,以便每當(dāng)需要擴(kuò)展類或者對(duì)象行為的時(shí)候不必修改類本身。相反,類的簡(jiǎn)單擴(kuò)展將有助于新的行為。
例如,開(kāi)放/封閉原則能夠在下列情形中表現(xiàn)得淋漓盡致:為了實(shí)現(xiàn)所需行為,用戶必須通過(guò)擴(kuò)展抽象基類來(lái)創(chuàng)建類的實(shí)現(xiàn),而不是通過(guò)修改抽象類。
本設(shè)計(jì)原則的優(yōu)點(diǎn)如下:
- 現(xiàn)有的類不會(huì)被修改,因此退化的可能性較小。
- 它還有助于保持以前代碼的向后兼容性。

控制反轉(zhuǎn)原則

控制反轉(zhuǎn)是指,高層級(jí)的模塊不應(yīng)該依賴于低層級(jí)的模塊,它們應(yīng)該都依賴于抽象。細(xì)節(jié)應(yīng)該依賴于抽象,而不是抽象依賴于細(xì)節(jié)。
該原則建議任何倆個(gè)模塊都不應(yīng)該以緊密方式相互依賴。事實(shí)上,基本模塊和從屬模塊應(yīng)當(dāng)在它們之間提供一個(gè)抽象層來(lái)耦合。這個(gè)原則還建議,類的細(xì)節(jié)應(yīng)該描繪抽象。在某些情況下,這種觀念會(huì)反轉(zhuǎn),也就是實(shí)現(xiàn)細(xì)節(jié)本身決定了抽象,這種情況是應(yīng)該避免的。
控制反轉(zhuǎn)原則的優(yōu)點(diǎn)如下。
  • 消除了模塊間的緊耦合,因此消除了系統(tǒng)中的復(fù)雜性/剛性。
  • 由于依賴模塊之間有一個(gè)明確的抽象層(由鉤子或者參數(shù)提供),因此便于通過(guò)更好的方式處理模塊之間的依賴關(guān)系。

接口隔離原則

接口隔離原則規(guī)定,客戶端不應(yīng)該依賴于它們不需要使用的接口。
接口隔離原則的意思就是,軟件開(kāi)發(fā)人員應(yīng)該仔細(xì)地處理接口。例如,它提醒開(kāi)發(fā)人員/架構(gòu)師開(kāi)發(fā)的方法要與特定的功能緊緊相關(guān)。如果存在與接口無(wú)關(guān)的方法,那么依賴于該接口的類就必須實(shí)現(xiàn)它,實(shí)際上這是毫無(wú)必要的。
例如,一個(gè)Pizza接口不應(yīng)該提供名為add_chicken()方法。基于接口的Veg Pizza不應(yīng)該強(qiáng)勢(shì)實(shí)現(xiàn)該方法。
本實(shí)際原則的優(yōu)點(diǎn)如下所示。
  • 它強(qiáng)制開(kāi)發(fā)人員編寫(xiě)"瘦身型"接口,并使用方法與接口緊緊相關(guān)。
  • 放置向接口中隨意添加方法。

單一職責(zé)原則

單一職責(zé)的含義是:類的職責(zé)單一,引起類變化的原因單一。
這個(gè)原則是說(shuō),當(dāng)我們開(kāi)發(fā)類時(shí),它應(yīng)該為特定的功能服務(wù)。如果一個(gè)類實(shí)現(xiàn)了倆個(gè)功能,那么最好將它們分開(kāi)。也就是說(shuō),功能才是改變的理由。例如,一個(gè)類可以因?yàn)樗栊袨榈淖兓M(jìn)行修改,但是如果一個(gè)類由于倆個(gè)因素(基本上是倆個(gè)功能的改變)而改變,那么該類就應(yīng)該進(jìn)行相應(yīng)的分割。
本設(shè)計(jì)原則的優(yōu)點(diǎn)如下:
  • 每當(dāng)一個(gè)功能發(fā)生變化時(shí),除了特定的類需要改變外,其他類無(wú)需變動(dòng)。
  • 此外,如果一個(gè)類有多種功能,那么依賴它的類必定會(huì)由于多種原因而經(jīng)歷多次修改,這是應(yīng)該避免的。

替換原則

替換原則規(guī)定,派生類必須能夠完全取代基類。
這個(gè)原則很簡(jiǎn)單,當(dāng)應(yīng)用程序開(kāi)發(fā)人員編寫(xiě)派生類時(shí),該原則的含義就是他們應(yīng)該擴(kuò)展基類。此外,它還建議派生類應(yīng)盡可能對(duì)基類封閉,以至于派生類本身可以替換基本而無(wú)需修改任何代碼。

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国内永久第一免费福利视频 | 欧美一级在线毛片免费观看 | 国产成人精品高清免费 | 日本在线观看永久免费网站 | 免费在线观看黄色小视频 | 日韩成人精品在线 | 亚洲视频www | 在线播放 亚洲 | 99热久久精品国产66 | 在线欧美精品国产综合五月 | 久久久久久久久久免观看 | 国内精品七七久久影院 | 亚洲精品一区二区三区香蕉在线看 | 久久久毛片免费全部播放 | 国产91精品福利在线观看 | 久久久噜噜噜久久 | 激情影院费观看 | 免费欧美日韩 | 蕾丝视频永久在线入口香蕉 | 成年性午夜免费视频网站不卡 | 国产成人精品一区二区仙踪林 | 日产国语一区二区三区在线看 | 欧洲自拍偷拍 | 色狠狠综合 | 久久婷婷色 | 天天爆操| 国产日产欧产精品网站 | 国产亚洲精品在天天在线麻豆 | 国产伦精品一区二区三区在线观看 | jizzjizz欧美69巨大 | 国产福利不卡视频在免费播放 | 国内第一永久免费福利视频 | 久久精品国产一区二区小说 | 91九色在线视频 | 波多野结衣 一区二区 | 人人狠狠综合久久亚洲 | 国产精品一区二区手机看片 | 在线亚洲欧洲福利视频 | 国内精品久久久久久久97牛牛 | 日韩毛片免费在线观看 | 午夜精品福利在线 |