python3中如何區分一個函數和方法


一般情況下,單獨寫一個def func():表示一個函數,如果寫在類里面是一個方法。但是不完全准確。

class Foo(object):
    def fetch(self):
        pass

print(Foo.fetch)   # 打印結果<function Foo.fetch at 0x000001FF37B7CF28>表示函數
# 如果沒經實例化,直接調用Foo.fetch()括號里要self參數,並且self要提前定義
obj = Foo()
print(obj.fetch)  # 打印結果<bound method Foo.fetch of <__main__.Foo object at 0x000001FF37A0D208>>表示方法
from types import MethodType,FunctionType

class Foo(object):
    def fetch(self):
        pass


print(isinstance(Foo.fetch,MethodType))    # False
print(isinstance(Foo.fetch,FunctionType))  # True

obj = Foo()
print(isinstance(obj.fetch,MethodType))    # True
print(isinstance(obj.fetch,FunctionType))  # False

# MethodType方法類型
# FunctionType函數類型

 


免責聲明!

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



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