Python中的函數和方法有什么不同?函數與方法之間有差異嗎?

函數和方法,很多時候我們會將這兩個內容混為一談,那到底是不是這樣的呢?如果一樣,為什么存在函數或者方法兩個名詞呢?函數肯定是函數,方法肯定是方法,兩者是獨立的個體,那我們要怎么區分,或者在什么場景下區分這兩個是怎么用呢?下面一起來看看吧 。

Python中的函數和方法有什么不同?函數與方法之間有差異嗎?


函數和方法的區別:
1、在Python的標準庫inspect 中,有兩個默認函數為ismethod()和isfunction(),再通過這兩個函數就可以用來對方法和函數進行判斷,查看它們的具體使用 。
2、通常在函數的使用中,里面是包含了一個函數頭已經函數體的,并且在參數的支持中可以使用0-n個形參 。但是在方法中,也就是Method它是在函數的基礎上,添加了一層類的關系,就是這個關系,才能區分函數和方法之間的區別 。
3、在概念性上面講解它們之間的區別在于:通常一個函數是屬于FunctionObject的 , 但是在方法中,它又屬于PyMethodObject 。
簡單來看下代碼:
def aa(d, na=None, *kasd, **kassd): passclass A(object): def f(self): return 1a = A()print '#### 方法描述 ####'print '## 函數 %s' % aaprint '## 類方法 %s' % A.fprint '## 實例方法 %s' % a.f輸出結果:
#### 方法描述 ###### 函數 <function aa at 0x000000000262AB38>## 類方法 <unbound method A.f>## 實例方法 <bound method A.f of <__main__.A object at 0x0000000002633198>>【Python中的函數和方法有什么不同?函數與方法之間有差異嗎?】這篇關于Python中的函數和方法有什么不同?函數與方法之間有差異嗎?的文章就分享到這里了,希望文章中的內容可以對大家的學習帶來幫助 。

    猜你喜歡