本篇內容主要介紹從幾個維度來介紹下python中函數和方法的區別:
首先,從分類的角度來分析。
(1)函數的分類:(推薦學習:Python影片教學)
內建函數:python內嵌的一些函數。
匿名函數:一行程式碼實作一個函數功能。
遞迴函數
自訂函數:依照自己的需求,來進行定義函數。
(2)方法的分類:
普通方法:直接用self呼叫的方法。
私有方法:__函數名,只能在類別中被呼叫的方法。
屬性方法:@property,將方法偽裝成為屬性,讓程式碼看起來更合理。
特殊方法(雙重底線方法):以__init__為例,是用來封裝實例化物件的屬性,只要是實例化物件就一定會執行__init方法,如果物件子類別中沒有則會尋找父類別(超類別),如果父類別(超類別)也沒有,則直接繼承object(python 3.x)類,執行類別中的__init__方法。類別方法:透過類別名稱的呼叫去操作公共模板中的屬性和方法。
靜態方法:不用傳入類別空間、物件的方法, 作用是保證程式碼的一致性,規範性,可以完全獨立類別外的一個方法,但是為了程式碼的一致性統一的放到某個模組(py檔案)中。
其次,從作用域的角度來分析:
(1)函數作用域:從函數呼叫開始到函數執行完成,傳回給呼叫者後,在執行過程中開啟的空間會自動釋放,也就是說函數執行完成後,函數體內部透過賦值等方式修改變數的值不會保留,會隨著傳回給呼叫者後,開啟的空間會自動釋放。
(2)方法作用域:透過實例化的物件進行方法的調用,調用後開闢的空間不會釋放,也就是說調用方法中對變數的修改值會一直保留。
最後,呼叫的方式不同。
(1)函數:透過「函數名稱()」的方式進行呼叫。
(2)方法:透過「物件.方法名」的方式進行呼叫。
class Foo(object): def func(self): pass #实例化 obj = Foo() # 执行方式一:调用的func是方法 obj.func() #func 方法 # 执行方式二:调用的func是函数 Foo.func(123) # 函数
更多Python相關技術文章,請造訪Python教學欄位進行學習!
以上是python函數與方法的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!