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 在定義類的方法時是必須有的,雖然在呼叫時不必傳入相應的引數。