欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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


對象

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

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

方法

以下幾點描述了方法在面向?qū)ο笾械淖饔谩?
  • 它們表示對象的行為
  • 方法可以對屬性進行處理,從而實現(xiàn)所需的功能。
下面是python中的一個列子
            
              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))

              
            
          
運行示列如下:

在這里插入圖片描述

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

封裝

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

多態(tài)

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


            
          

繼承

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

b = B()
a.a1()

            
          

抽象

抽象的主要特征如下所示:
  • 它提供了一個簡單的客戶端接口,客戶端可以通過該接口與類的對象進行交互,并可以調(diào)用該接口中定義的各個方法。
  • 它將內(nèi)部類的復雜性抽象為一個接口,這樣的客戶端就不需要知道內(nèi)部實現(xiàn)了。
在下面的列子中,我們通過add()方法對類Adder的內(nèi)部細節(jié)進行了抽象處理:
            
              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)

            
          

組合

組合是指以下幾點
  • 它是一種將對象或類組合成更復雜的數(shù)據(jù)結(jié)構(gòu)或軟件實現(xiàn)的方法。
  • 在組合中,一個對象可用于調(diào)用其他模塊中的成員函數(shù),這樣一來,無需通過繼承就可以實現(xiàn)基本功能的跨模塊使用。
在下面的示列中,類A的對象被組合到類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計原則

開放封閉原則

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

控制反轉(zhuǎn)原則

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

接口隔離原則

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

單一職責原則

單一職責的含義是:類的職責單一,引起類變化的原因單一。
這個原則是說,當我們開發(fā)類時,它應該為特定的功能服務。如果一個類實現(xiàn)了倆個功能,那么最好將它們分開。也就是說,功能才是改變的理由。例如,一個類可以因為所需行為的變化而進行修改,但是如果一個類由于倆個因素(基本上是倆個功能的改變)而改變,那么該類就應該進行相應的分割。
本設計原則的優(yōu)點如下:
  • 每當一個功能發(fā)生變化時,除了特定的類需要改變外,其他類無需變動。
  • 此外,如果一個類有多種功能,那么依賴它的類必定會由于多種原因而經(jīng)歷多次修改,這是應該避免的。

替換原則

替換原則規(guī)定,派生類必須能夠完全取代基類。
這個原則很簡單,當應用程序開發(fā)人員編寫派生類時,該原則的含義就是他們應該擴展基類。此外,它還建議派生類應盡可能對基類封閉,以至于派生類本身可以替換基本而無需修改任何代碼。

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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 999精品视频在线观看 | 久久精品二区 | 91短视频app下载 | 91尤物国产尤物福利 | 国产一区二区三区久久 | 色中色综合网 | 欧美日韩在线免费 | 99国产欧美久久精品 | 91懂色 | 国产1区2区 | 第一福利在线观看 | 亚洲黄色免费 | 婷婷色爱区综合五月激情韩国 | 天天射天 | www.亚洲在线 | 综合网视频| 色综合久久久久综合99 | 成人精品久久 | 色宅男看片午夜大片免费看 | 免费观看呢日本天堂视频 | 五月激情综合网 | 8844aa在线毛片 | 成人毛片国产a | 99久久99热久久精品免费看 | 精品精品国产高清a毛片 | 国产人A片777777久久 | 欧美第一色| www操com| 国产福利观看 | 综合97| 色天天爱天天狠天天透 | 青娱乐综合网 | 手机在线观看亚洲国产精品 | 国产成人高清视频 | 国产一区久久 | 国产精品久久久久无码人妻精品 | 日韩在线观看视频黄 | 在线播放国产精品 | 成人偷拍片视频在线观看 | 99青青草| 国产精品资源网站在线观看 |