首頁  >  文章  >  後端開發  >  python中方法與函數的區別

python中方法與函數的區別

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-06-24 11:32:342592瀏覽

python中方法與函數的區別

本篇內容主要介紹從幾個維度來介紹下python中函數與方法的區別:

首先,從分類的角度來分析。

(1)函數的分類:

內建函數:python內嵌的一些函數。匿名函數:一行程式碼實作一個函數功能。遞歸函數自訂函數:根據自己的需求,來進行定義函數。

(2)方法的分類:

普通方法:直接用self呼叫的方法。私有方法:__函數名,只能在類別中被呼叫的方法。屬性方法:@property,將方法偽裝成為屬性,讓程式碼看起來更合理。特殊方法(雙底線方法):以__init__為例,是用來封裝實例化物件的屬性,只要是實例化物件就一定會執行__init方法,如果物件子類別中沒有則會尋找父類別(超類),如果父類別(超類別)也沒有,則直接繼承object(python 3.x)類,執行類別中的__init__方法。類別方法:透過類別名稱的呼叫去操作公共模板中的屬性和方法。靜態方法:不用傳入類別空間、物件的方法, 作用是保證程式碼的一致性,規範性,可以完全獨立類別外的一個方法,但是為了程式碼的一致性統一的放到某個模組(py檔案)中。

相關推薦:《Python影片教學

#其次,從作用域的角度來分析:

(1 )函數作用域:從函數呼叫開始到函數執行完成,返回給呼叫者後,在執行過程中開啟的空間會自動釋放,也就是說函數執行完成後,函數體內部透過賦值等方式修改變數的值不會保留,會隨著返回給呼叫者後,開啟的空間會自動釋放。

(2)方法作用域:透過實例化的物件進行方法的調用,調用後開闢的空間不會釋放,也就是說調用方法中對變數的修改值會一直保留。

最後,呼叫的方式不同。

(1)函數:透過「函數名稱()」的方式進行呼叫。

(2)方法:透過「物件.方法名」的方式進行呼叫。

class Foo(object):    
    def func(self):        
        pass
#实例化
obj = Foo()
# 执行方式一:调用的func是方法
obj.func() #func 方法
# 执行方式二:调用的func是函数
Foo.func(123) # 函数

以上是python中方法與函數的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn