您的位置:首页 > 编程语言 > Python开发

Python中区分函数和方法

2020-02-17 03:09 309 查看

1.简单粗暴型:

def func():
...
class Foo:
def eat(self):
print("吃")
f = Foo()
print(func) #<function func at 0x0000021527DAC1E0>
print(Foo.eat) #<function Foo.eat at 0x000001AE7FF6B268>
print(f.eat) #<bound method Foo.eat of <__main__.Foo object at 0x0000025711BD5EF0>>
# 通过类名调用的就是函数,通过类实例化的对象调用就是方法

2.导入模块判断:

from types import FunctionType,MethodType
def func():
...
class Foo:
def eat(self):
print("吃")
f = Foo()

print(isinstance(func,FunctionType)) # True
print(isinstance(f.eat,MethodType))  # True
print(isinstance(Foo.eat,FunctionType)) # True
print(isinstance(Foo.eat,MethodType)) # False

  

转载于:https://www.cnblogs.com/changtao/p/10741787.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
anke7411 发布了0 篇原创文章 · 获赞 0 · 访问量 212 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: