1. 程式人生 > 程式設計 >Python面向物件程式設計之類和物件、例項變數、類變數用法分析

Python面向物件程式設計之類和物件、例項變數、類變數用法分析

本文例項講述了Python面向物件程式設計之類和物件、例項變數、類變數用法。分享給大家供大家參考,具體如下:


類和物件:

  • 類的定義:用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。
  • 類的優勢:將一個物件的功能集中於一體,便於操作,降低了程式碼的重複。
  • 例項化:建立一個類的例項,類的具體物件。
  • 物件:通過類定義的資料結構例項。物件包括兩個資料成員(類變數和例項變數)和方法。

使用 class 語句來建立一個新類:

class Dog:
  #self 代表的是類的例項,代表當前物件的地址
  def __init__(self,name):##稱為類的建構函式,進行初始化成員變數
    self.name=name
  def bulk(self):###自定義函式
    print("%s:汪汪!"%self.name)

d1=Dog("奧巴馬")##建立物件,傳入__init__所需的變數,self預設自動傳入

d1.bulk()#呼叫方法
print(d1)

為什麼要有self:

以類變數和例項變數為解釋,對於共有屬性,一般會在共有部分定義,不需要__init__,而比如說因為人人都有自己的名字,那麼名字應該是一個人私有的。而類的函式由於為了節約資源,並不會拷貝給每一個物件,每一個物件都要從類的定義區中呼叫方法,對於涉及物件特有屬性的方法,呼叫方法的時候必須傳入自身物件self才能使函式獲得私有的資料,而呼叫這個私有的資料使用”self.變數名”.

image

附:

什麼是新式類:https://www.jb51.net/article/183280.htm


例項變數和類變數:

  • 例項變數是對於每個例項都獨有的資料,而類變數是該類所有例項共享的資料
  • 變數使用的順序是:例項變數--》類變數,如果例項變數中沒有才會去類變數中找
  • 但即使是類中的變數,也是需要使用self.變數名來使用
class Dog:
  age=8
  def __init__(self,name):
    self.name=name
  def bulk(self):
    print("汪汪")

d1=Dog("包子")
d2=Dog("饅頭")
d1.age=10
print("Dog:",Dog.age,"\tD1:",d1.age,"\tD2:",d2.age)


-------------------------
結果:
Dog: 8   D1: 10   D2: 8
  • 節約論:python為了簡潔性,不會複製一份類的資料給每一個物件,每一個物件之後存有其特有的屬性,當其需要使用屬性或方法時,先看自己有沒有,如果沒有再去類中找


類變數的建立:

  • 可以在宣告類的時候定義

image

  • 也可以使用賦值來定義:

image

image


例項變數的建立:

  • 可以在__init__中定義

image

  • 也可以使用賦值來定義:

image

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python面向物件程式設計入門與進階教程》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程式設計有所幫助。