python函数和类的区别_Python中类中的方法还有区别?

Python类中的三种方法

Python中的方法可以分为三类:

实例方法:第一个参数是实例对象 self,必须通过实例去调用。

类方法:需要在方法前加 @classmethod 修饰,第一个参数是类本身,一般写作cls,类和实例都可以调用。

静态方法:需要在方法前加 @staticmethod修饰,没有隐含传递的参数:方法体中不能使用类或实例的任何属性和方法

这里的@classmethod 和 @staticmethod 都是函数装饰器(Decorators),简单来说它是一个修改其它函数的功能的函数。具体的细节涉及到Python更深层的东西。在这里我们只需要了解只要它俩出现,那么这个方法就是类方法或者静态方法。

self是什么了,在这里简单再说一下,我们可以使用self指代的是当前的实例,相当于每个实例的钥匙,根据self,每个实例只能调用自己的变量和方法。

实际使用中如何选择三种方法

那么说了这么多,比较了这三种方法的差异,那么为什么会有这三种方法的区别呢?因为他们对于不同属性的调用有所区别,可被调用的对象不同,所以在实际使用中就是根据这些差异来选择最合适的方法。

实例方法是类中最普遍的方法,我们通常定义的都是实例方法,不需要多说了。

关于类方法,如果说我现在要定义一个方法,这个方法只需要调用类属性,也只在把类当作一个对象使用的时候才会需要这个方法,或者说在逻辑上采用类本身作为对象来调用更合理,这时候就应该使用类方法。

关于静态方法,我们可以发现它不需要任何的参数,不会涉及到类中的属性和方法的操作。本质上说它只是在逻辑上逻辑上属于类,但是和类本身没有关系,在碰到这种情况时可以定义静态方法。

原文地址:https://www.cnblogs.com/bianfuxia/p/15268413.html