python 類詳解及簡單實例
python 類詳解
類
1.類是一種數據結構,可用于創(chuàng)建實例。(一般情況下,類封裝了數據和可用于該數據的方法)
2.Python類是可調用的對象,即類對象
3.類通常在模塊的頂層進行定義,以便類實例能夠在類所定義的源代碼文件中的任何地方被創(chuàng)建。
4.實例初始化
- instance = ClassName(args....)
- 類在實例化時可以使用__init__和__del__兩個特殊的方法。
class ClassName(base): 'class documentation string' #類文檔字符串 class suite #類體
- base:超類是一個或多個用于繼承的父類集合
- 類體可以包括:聲明語句、類成員定義、數據屬性、方法
- 如果類不存在繼承關系,就不提供括號里的base
class FirstClass(): spam = 30 #類數據屬性 def display(self): #類方法 print self.spam x = FirstClass() #創(chuàng)建類實例 x.display() #方法調用 >>> 30 dir(FirstClass) >>> ['__doc__', '__module__', 'display', 'spam']
- class語句類似def,是可執(zhí)行代碼;直到運行class語句后,類才會創(chuàng)建
- class語句內,任何賦值語句都會創(chuàng)建類屬性
- 每個實例對象都會繼承類的屬性并獲得自己的名稱空間
Python類方法及調用
實例(對象)包含的屬性
- 可調用的屬性:方法
- 數據屬性
在OOP中,實例就像是帶有“數據”的記錄,而類是處理這些記錄的“程序”
- 通過實例調用方法相當于調用所屬類的方法來處理當前實例。 比如之前的代碼例子,x.display() 會被自動轉換為 FirstClass.display(x),即調用類的方法來處理實例x
- 因此,類中每個方法必須有self參數,它隱含當前實例之意
- 在方法內對self屬性做賦值運算會產生每個實例自己的屬性
- Python規(guī)定,沒有實例,方法不允許被調用,這是‘綁定'(binding)的概念
- class語句中的賦值語句會創(chuàng)建類屬性,如前面例子的spam
- 在類方法中對傳給方法的特殊參數self進行賦值會創(chuàng)建實例屬性
Python構造器
創(chuàng)建實例時,Python會自動調用類中的__init__方法,以隱形的為實例提供屬性
- __init__方法被稱為構造器
- 如果類中沒有定義__init__方法,實例創(chuàng)建之初僅僅是一個簡單的名稱空間。
- __init__的第一個參數一定是self ,self 變量用于在類實例方法中引用方法所綁定的實例。因為方法的實例在任何方法調用中總是作為第一個參數傳遞的,self 被選中用來代表實例。你必須在方法聲明中放上 self,但可以在方法中不使用實例(self)。如果你的方法中沒有用到 self , 那么請考慮創(chuàng)建一個常規(guī)函數,除非你有特別的原因。畢竟,你的方法代碼沒有使用實例,沒有與類關聯(lián)其功能,這使得它看起來更像一個常規(guī)函數。在其它面向對象語言中,self 可能被稱為 this。
- __init__不能返回任何對象
- 析構函數:__del__
- 構造函數是必要的,而析構函數常??梢圆豢紤](Python解釋器會自己回收)
class MyClass():
def __init__(self, name):
self.name = name
print 'My name is ' + self.name
def __del__(self):
print self.name + ' is dead.'
i1 = MyClass('Shaw')
>>> My name is Shaw
del i1
>>> Shaw id dead.
類的特殊屬性
- 使用dir()或__dict__,查看類或實例的屬性
- __doc__:獲取文檔字符串
- __base__:獲取所有父類
- __module__:類所在的模塊
- __name__:實例所屬類的名字
Python類方法中可用的變量
- 實例變量:self.變量名
- 局部變量:方法內部創(chuàng)建的變量,可直接使用
- 靜態(tài)變量:類中定義的變量。類名.變量名
- 全局變量:直接使用
繼承
繼承描述了基類的屬性如何‘遺傳'給派生類
- 子類可以繼承他的基類的任何屬性,包括數據屬性和方法
- 一個未指定基類的類,其默認有一個叫object的基類
- Python允許多重繼承(可以繼承多個父類)
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Python使用pyinstaller打包spec文件的方法詳解
PyInstaller是一個用于將Python腳本打包成獨立的可執(zhí)行文件的工具,使用PyInstaller您可以將Python應用程序轉換為可執(zhí)行文件,而無需用戶安裝Python解釋器或任何額外的庫,這篇文章主要給大家介紹了關于Python使用pyinstaller打包spec文件的相關資料,需要的朋友可以參考下2024-08-08
Python中使用PyHook監(jiān)聽鼠標和鍵盤事件實例
這篇文章主要介紹了Python中使用PyHook監(jiān)聽鼠標和鍵盤事件實例,這個庫依賴于另一個Python庫PyWin32,并且只能運行在Windows平臺,需要的朋友可以參考下2014-07-07
用python打開攝像頭并把圖像傳回qq郵箱(Pyinstaller打包)
這篇文章主要介紹了用python打開攝像頭并把圖像傳回qq郵箱,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05

