为什么Python调用方法,有的前面加类名,有的不加?

Python中,导入模块,调用里面的方法时,好像有2种,①模块名.方法名(),如math.sin();②对象名.方法名(),如pandas里面的mydata.info(),这里的mydata是创建的一个对象。为什么有的要模块名,有的用对象名?

答: Python使用面向对象的方法进行编程时,确实有两种调用方法。第一,当被调用的方法是静态方法,那么这个时候无须实例化对象,直接按照类名.函数名格式即可,如math.sin(),在该函数的底层实现当中,使用了@staticmethod声明静态方法,我的理解是这样的,当某个方法经常被使用时,把它声明成静态方法会方便一些;第二,当被调用方法是非静态方法时,则必须先实例化一个对象,再进行方法调用。希望能够帮助到你。

例子

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-08-23
①模块名.方法名() 这是因为这个方法用@staticmethod修饰,属于类方法
②对象名.方法名() 这是因为方法是实例方法,必须通过对象才能调用
比如person类的run方法
p=Person(101,"张三")
p.run();
这就是第二种情况了。本回答被网友采纳
相似回答