中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python類基礎知識有哪些

發布時間:2021-11-25 11:00:08 來源:億速云 閱讀:165 作者:iii 欄目:大數據

這篇文章主要講解了“Python類基礎知識有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python類基礎知識有哪些”吧!

  1、類的基礎知識

  說到類,就不得不提面向過程編程和面向對象編程。下面用1個例子說明這兩種編程方式在編碼上的區別,如下圖所示:

  (1)在面向對象編程中最重要的概念是類(Class) 和實例(Instance) 。

  (2)類是抽象的模板,可以將其理解為一個基礎模板,比如Student類。而實例是根據類創建出來的一個具體對象。“物以類聚,人以群分”, 可以從這句話來理解編程中的類。類應該是有共同特點的事物的集合,比如人類、動物類。類中的對象應該有共同的特點,而這些特點對應編程中的類的共同屬性和方法。而具體的對象之間又或多或少有差別,比如在“鳥”這個類中,每只鳥又有自己的特點。

  (3)每個對象都擁有相同的方法,但各自的數據可能不同。每個對象都擁有相同的方法,實例擁有類中所有的方法;無論實例的名稱如何不同,他們的方法都是一樣的。比如,類是 Student, 那么不管是實例 lilei, 還是實例hanmeimci,只要它們都是 Student的實例,它們所擁有的方法都是相同的。每個實例的數據可能不同,這是因為在使用實例時,如果需要在這個類中傳入參數作為初始數據,那么每個實例可能會被傳入不同的數據。比如數據庫類,如果傳入的是不同的數據庫連接串,則實例的數據就不同了。

  2、類的使用

  (1)在Python中,定義類是通過class關鍵字來實現的:

  class Student(object):

  Pass

  class 后面緊接著是類名,即Student.類名通常采用單詞首字母大寫的形式命名,比如 StudentCore。

  (object) 表示該類是從哪個類繼承來的。如果沒有合適的繼承類,則通常使用 object 類,這是所有類都會繼承的類。

  (2)實例化一個類是通過在類名后面加小括號“()”來實現的:

  pupil=Student ()

  “小學生”是“學生”這個的一個實例。所謂實例,可以將其理解為類的化身。類不能被直接使用,只能先將其實例化,然后用實例代表類,進而調用類中的方法處理數據。那么實例是怎么代表類的呢?在定義類及其方法時,有一個參數叫self, 它就是串聯實例與類之間的關鍵參數,可以簡單地理解為“self=實例名”。

  類的下面有屬性和方法。可以將屬性理解為靜態的數據,將方法理解為動態的處理函數。比如,在下面的代碼中定義了“學生”類,其中_ _init_ _是屬性,print_score 是方法。

  #-*-coding:utf-8-*

  Class Student (object) :

  def _ _ init_ _ (self,name,score) :

  self.name= name

  self.score=score

  def print_score (self) :

  print ('%s: %s'% (self. _ _name,self. _ _acore) )

  (3)實例化上面的類,然后分析Python 如何利用實例化類調用類中的方法。

  完整的實例化類與調用過程如下:

  pupil=student (name='lilei',score=99)

  pupil.print_score ()

  按照前面的說法,self=實例名,那么 pupil=Student (name='lilei',score=99) , 實例化類的第一步是執行 _ _init_ _ 語句,即 Student (self='pupil',name='lilei',score=99) , 則可知pupil.name='lilei',pupil.score=9.實例化類的第二步是執行 pupil.print_score () 語句,調用實例的方法就是調用類的方法,而這個方法是按照格式打印出

  pupil.name:pupil.score,mlilei: 99。

  3、類的優勢

  (1)類的訪問限制。

  所謂類的訪問限制,即在類的外部不能直接調用類中的數據。在 Python 中,在變量前加“_ _”可將變量置為私有變量,使其只能在類中被使用,不能被類之外的其他函數(方法)調用。下面代碼中的name 參數表示的就是私有變量。

  #-*-coding:utf-8-*-

  #_ _author_ _='大嬸N72’

  class Student (object) :

  def _ _init_ _(self,name,score) :

  self._ _name= name

  self.score= score

  def print_score (self) :

  print ('%s: %S'% (self._ _name,self._ _score) )

  MeiMei=Student ('hello', 99)

  print (MeiMei.score)

  print (MeiMei. _ _name)

  代碼的運行結果很好地佐證了加了“_ _”的參數是不能被調用的,沒加“_ _”的參數是可以直接被調用的,如下所示:

  C:\Python36\python3. exe F:/Autotest_interface_demo/test. py

  99

  Traceback (most recent call last):

  File "F:/Autotest interface demo/test.py”, line 12, in

  print (MeiMei._name)

  AttributeError: ' Student' object has no attribute'__name’

  Process finished with exit code 1

  (2) 類的繼承。

  所謂“繼承”, 從字面上看很好理解:如果一個類繼承了另外一個類,則這個類就有了被繼承的類的所有方法和屬性。我們可以直接使用這些方法和屬性,無須再單獨寫。下面舉一個例子來解釋什么是繼承。類的基本定義如下:

  # -*- coding:utf-8 -*-

  # _ _author_ _=‘大嬸N72’

  # 父類

  class Parent (object) :

  def print_self (self) :

  return “我是父類”

  # 子類繼承父類

  class Student (Parent) :

  def_ _init_ _ (self,name,score) :

  self. _ _name= name

  self.score=score

  def print_score (self) :

  print ('%s: %s'% (self. _ _name,self. _ _score) )

  MeiMei=Student ('hello', 99)

  print (MeiMei.score)

  #直接在子類中使用父類的方法

  print (MeiMei.print_self ()

  在上面的例子中,子類 Student 繼承了父類 Parent.方法是在類名稱后面的小括號中加上父類的名稱。子類繼承了父類,則有了父類 Parent 的方法 print_self, 從而可以直接在自己的實例名中使用。

  (3)類的多態。

  如果子類繼承了父類,但是又想改變父類的方法,則這時無須修改父類的方法,只需要在子類中添加相同的方法名就可以起到覆蓋的作用,這就是多態。

  # -*- coding:utf-8 -*-

  # _ _author_ _='大嬸N72'

  #父類

  class Parent (object) :

  def print_self (self) :

  return"我是父類"

  #子類繼承父類

  class Student (Parent) :

  def _ _init_ _ (self,name,score) :

  self. _ _name= name

  self.score=score

  def print_score (self) :

  print ('%s: %S'% (self. _name,self. _ _score) )

  def print_self (self) :

  return"我是子類"

  MeiMei=Student ('hello', 99)

  print (MeiMei.score)

  #子類的方法覆蓋父類方法

  print (MeiMei.print_self () )

感謝各位的閱讀,以上就是“Python類基礎知識有哪些”的內容了,經過本文的學習后,相信大家對Python類基礎知識有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

靖宇县| 太白县| 牙克石市| 九江县| 孝昌县| 东海县| 遂平县| 榆林市| 武城县| 泊头市| 平昌县| 乌拉特中旗| 慈利县| 马公市| 调兵山市| 曲靖市| 平泉县| 宁都县| 济源市| 望城县| 德庆县| 色达县| 化州市| 岑巩县| 民丰县| 玉溪市| 宜宾市| 沁阳市| 绥芬河市| 武川县| 雷山县| 资溪县| 彰化县| 镇安县| 北流市| 法库县| 岳池县| 大同市| 雅江县| 疏勒县| 海伦市|