python之類中如何判斷是函數還是方法


通常我們認為在類中的函數為方法,類外面聲明def為函數,這種說法有點片面

方法1:

class Work(object):
    def show(self):
        print("執行show方法")

work = Work()
print(Work.show)
print(work.show)

結果:
<function Work.show at 0x000001CC55BC5268>
<bound method Work.show of <__main__.Work object at 0x000001CC55C2F240>>

可以看出通過類方法調用為函數,通過實例化對象調用為方法

方法2:

from types import MethodType,FunctionType
print(isinstance(Work.show,FunctionType))
print(isinstance(Work.show,MethodType))
print(isinstance(work.show,FunctionType))
print(isinstance(work.show,MethodType))

結果:
True
False
False
True

 可以用內置的isinstance 來判斷

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM