python類、物件

學習完本篇,你將會深入掌握

  • 什麼是類,物件
  • 瞭解類和物件之間的關係
  • 能獨立建立一個People(人類),屬性有姓名、性別、年齡。提供一個有參的構造方法,編寫一個show方法,輸出姓名、性別和年齡。

什麼是類

  • 物件是現實世界事物的模型,類(class)就是建立這些模型的模板。類定義了物件需要描述的屬性、具備的行為。可以把類看作建立物件的藍圖,從這個藍圖可以建立任意數量的物件。
  • 在程式中,類實際上就是資料型別。為了模擬真實世界更好的解決問題,往往需要建立解決問題所必須的資料型別。
  • 類是對客觀世界的事物進行抽象思維活動後得到的“抽象資料型別”,而物件則是類的例項

類的定義

語法:
class classname(object):
// 宣告成員屬性
// 宣告成員方法 例項:
class people:
name = ‘’ #定義一個屬性 #定義一個方法
def set_name(self,str):
self.name = str #定義另一個方法
def print_name(self):
print self.name

物件

什麼是物件

  • 定義一個物件可以是人們要進行研究的任何事物,不僅能代表具體的實體,還可以表示抽象的規則、計劃或事件。在面向物件程式設計中,把要處理的事物抽象成物件。
  • 一個物件可以被認為是一個把資料(屬性)和方法(行為)封裝在一起的實體,其中物件的屬性通過資料反映了物件當前的狀態,物件的行為通過方法實現物件能夠進行的操作。
  • 物件的兩種成員

    1.成員屬性

    2.成員方法

物件的定義

#根據前面定義的people類,定義如下兩個物件
tom = people()
susun = people()
  • 計算機按照類中的成員變數和成員方法的定義,為當前物件相應的成員變數及成員方法分配記憶體空間。
  • 每個物件都有自己獨立的一片記憶體空間

類的結構-屬性

格式:
self.變數名 = value
也可以
變數名 = value;#這種方式放在方法(也稱函式)外
  • 屬性又稱為例項變數,可以在類函式定義也可以在函式外定義。
  • 屬性的作用域最小侷限在本類中
  • 如果想定義一個屬性不被外部訪問需要在變數前加”__”

類的結構-方法

方法定義格式:
def 方法名(self,引數列表):
……
返回值
  • python中引數有值傳遞,也有引用
  • 當沒有返回值是,python預設返回值為None
  • 類的方法與普通的函式只有一個特別的區別——它們必須有一個額外的第一個引數名稱, 按照慣例它的名稱是 self。

類的結構-建構函式

構造定義格式:
def __init__(self,引數):
……
  • 建構函式系統預設呼叫的方法
  • 在一個物件的生命週期中,構造器只用一次,用於建立物件,系統會自動呼叫,不允許手工呼叫。
  • 如果一個類沒有提供函式,系統為預設提供一個無參的函式。
  • self 代表類的例項,self 在定義類的方法時是必須有的,雖然在呼叫時不必傳入相應的引數。