欢迎光临散文网 会员登陆 & 注册

Python中function和method

2023-05-03 20:52 作者:CAE虚拟与现实  | 我要投稿

在Python中,你会同时看到『function』和『method』,所以Google的Python Style Guide中也对『function』和『method』分别进行了命名规则说明



在Python中,『function』就是一般意义上的函数,『method』是与类相关的函数,从概念上说,『function』和『method』都是函数,且『method』是『function』的子集。注意,这只是从概念上说,实际上,python中『function』和『method』是不同的类型,有class functionclass method之分(python3中)。

在Python中用def定义的都是函数。在类内定义的函数,通常来说是method,但也可能是function。这要看如何使用这个函数。总结一下,我对python中『function』和『method』的理解,如下:

  • 如果一个函数(def定义的)是不用依赖类的实例就可以调用,那么这个函数就是function类型的。例如,类的静态方法(@staticmethod),或者直接通过类名来调用类里声明的非静态函数,形式如ClassX.funcA()

  • 如果一个函数(def定义的)必须要依赖类的实例才能执行,那么此函数就是method类型的。例如,通过类的实例调用的方法,形式如ClassX().funcA(). (与上面的区别是括号: ClassX() 和ClassX的区别)

  • 如果一个函数(def定义的)依赖类本身,那么此函数是method类型的。这类函数是通过@classmethod修饰的类方法,因为类方法的第一个参数必须是类本身。注意,类方法的第一个参数不是类的实例(对象)

更多参考:https://blog.csdn.net/hshl1214/article/details/108983000

Python中function和method的评论 (共 条)

分享到微博请遵守国家法律