Python-类的学习
以下摘抄于RUNOOB.com
Python 面向對象
Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。本章節我們將詳細介紹Python的面向對象編程。
如果你以前沒有接觸過面向對象的編程語言,那你可能需要先了解一些面向對象語言的一些基本特征,在頭腦里頭形成一個基本的面向對象的概念,這樣有助于你更容易的學習Python的面向對象編程。
接下來我們先來簡單的了解下面向對象的一些基本特征。
面向對象技術簡介
類(Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
類變量: 類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。
數據成員: 類變量或者實例變量, 用于處理類及其實例對象的相關的數據。
方法重寫: 如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。
局部變量: 定義在方法中的變量,只作用于當前實例的類。
實例變量: 在類的聲明中,屬性是用變量來表示的。這種變量就稱為實例變量,是在類聲明的內部但是在類的其他成員方法之外聲明的。
繼承: 即一個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬"是一個(is-a)"關系(例圖,Dog是一個Animal)。
實例化: 創建一個類的實例,類的具體對象。
方法: 類中定義的函數。
對象: 通過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。
創建類
使用 class 語句來創建一個新類,class 之后為類的名稱并以冒號結尾:
class ClassName:'類的幫助信息' #類文檔字符串class_suite #類體類的幫助信息可以通過ClassName.__doc__查看。print(類名.__doc__)
class_suite 由類成員,方法,數據屬性組成。
Python的類成員函數、靜態函數和成員的函數的比較
參考:Python的類成員函數、靜態函數和成員的函數的比較
從聲明方式來看:
普通成員函數是最一般的方法,即
類成員函數是
class Foo:@classmethoddef class_func():pass靜態函數是
class Foo:@staticmethoddef static_func():pass從調用方式來看,普通函數與后兩者區別較大,普通函數只能在類的實例中被調用,而后兩者可以通過類名進行調用:
class Foo:def plain_func(self):print("plain_func")@classmethoddef class_func(cls):print("class_func")@staticmethoddef static_func():print("static_func")# 必須實例化進行調用 foo = Foo() foo.plain_func() # 通過類名進行調用 Foo.class_func() Foo.static_func()而后類方法class_func和靜態的方法static_func最核心的區別就在于類方法class_func有cls參數,而靜態方法static_func沒有cls參數。cls可以理解為this指針,它引用了一個類實例。
總結
以上是生活随笔為你收集整理的Python-类的学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习《送东阳马生序》
- 下一篇: Swintransformer详细设计文