Python中函数和方法的区别

函数(FunctionType)

函数是封装了一些独立的功能,可以直接调用,能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。可以直接在模块中进行定义使用。

所有传递给函数的数据都是显式传递的。

方法(MethodType)

方法和函数类似,同样封装了独立的功能,但是方法是只能依靠类或者对象来调用的,表示针对性的操作。
方法中的数据self和cls是隐式传递的,即方法的调用者;
方法可以操作类内部的数据

简单的说,函数在python中独立存在,可直接使用的,而方法是必须被别人调用才能实现的。
静态方法除外(与类和对象均无关,通过类名和对象名均可被调用,属函数)

Python的内置函数自成一派,属BuiltinFunctionType

class BuiltinFunctionType:
    __self__ = ...  # type: Union[object, ModuleType]
    __name__ = ...  # type: str
    __qualname__ = ...  # type: str
    def __call__(self, *args: Any, **kwargs: Any) -> Any: ...
BuiltinMethodType = BuiltinFunctionType

验证类型的最好办法就是isinstance(), 也可以使用type(),当然实际开发中最好使用前者,效率更高,毕竟一个是方法一个是类;一个针对性更强,一个需要对类型逐一检索匹配

    原文作者:Hilyou
    原文地址: https://blog.csdn.net/qq_36355119/article/details/82688030
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞