Python之如何判断是函数还是方法?
看他的调用者是谁,如果是类,就需要传入一个参数self的值,这时他就是一个函数,
如果调用者是对象,就不需要给self传入参数值,这时他就是一个方法
print(isinstance(obj.func,FunctionType))#False
print(isinstance(obj.func,MethodType))#True
classFoo(object):
def__init__(self):
self.name='lcg'
deffunc(self):
print(self.name)
obj=Foo()
print(obj.func)#>
print(Foo.func)#
#------------------------FunctionType,MethodType------------#
fromtypesimportFunctionType,MethodType
obj=Foo()
print(isinstance(obj.func,FunctionType))#False
print(isinstance(obj.func,MethodType))#True
print(isinstance(Foo.func,FunctionType))#True
print(isinstance(Foo.func,MethodType))#False
#------------------------------------------------------------#
obj=Foo()
Foo.func(obj)#lcg
obj=Foo()
obj.func()#lcg
"""
注意:
方法,无需传入self参数
函数,必须手动传入self参数
"""
以上内容为大家介绍了Python之如何判断是函数还是方法?,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:开发教育。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!