Python静态方法和类方法区别在哪?关键在于这几点

在python之中,静态方法和类方法都是在一个类之中通过修饰符去定义的函数 。而它们二者之间在调用的时候都是可以通过类名或者是类的对象名称去调用的,但是静态方法和类方法直接还是有着一定的区别的 。

Python静态方法和类方法区别在哪?关键在于这几点

文章插图
1.静态方法和类方法所使用的的修饰符不一样,这是它们之间最主要的区别 。静态方法使用的修饰符是@staticmethod,而类方法所使用的修饰符是@classmethod,代码示例如下:
class Bird:    @classmethod    def fly (cls):        print('类方法fly: ', cls)    @staticmethod    def info (p):        print('静态方法info: ', p)2.调用的机制不同,在调用一个类方法的时候会自动的绑定第一个参数,也就是类本身到这个类方法之中 。但是在调用静态方法的时候就需要去手动的指定这个方法内的参数是哪一个,因为它不会自动的去绑定 。
3.类方法的第一个参数必须为类对象,也就是说在类方法只有一个参数的情况下是无需去传递参数的,在有多个参数的情况下传进去的实际参数在去掉第一个参数后会按照顺序去传递 。而静态方法则需要有多少个参数就传递多少个实参进去,否则会发生报错 。
总的来说,静态方法和类方法之间最主要的区别就在于定义时使用的修饰符是不一样的,进一步区分的话就是函数参数的传递机制是不一样的 。
【Python静态方法和类方法区别在哪?关键在于这几点】以上就是python中静态方法和类方法直接的区别介绍了,希望对你有所帮助 。

    推荐阅读