如何区分调用的是函数还是方法

class MyClass():
def process(self):
pass

def process():
pass

print(type(MyClass().process).__name__ == 'method')
print(type(process).__name__ == 'function')
True
True
MyClass.process False
MyClass.process True
from types import MethodType, FunctionType
'''
函数: FunctionType
方法: MethodType
'''

print('MyClass.process ', isinstance(MyClass().process, FunctionType))
print('MyClass.process ', isinstance(MyClass().process, MethodType))

print('process ', isinstance(process, FunctionType))
print('process ', isinstance(process, MethodType))
MyClass.process  False
MyClass.process True
process True
process False

​53 - @classmethod 和@staticmethod 的用法和区别​