首頁 >後端開發 >Python教學 >python函數與方法的區別

python函數與方法的區別

(*-*)浩
(*-*)浩原創
2019-06-22 17:42:462872瀏覽

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

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中文網其他相關文章!

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