class_method和static_method

类中定义的函数有两大类(3小种)用途,一类是绑定方法,另外一类是非绑定方法

1.绑定方法:

  特殊之处:绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数自动传入

  1.1绑定给对象的:类中定义的函数默认就是绑定对象的。

  1.2绑定给类的:在类中定义的函数上加上一个装饰器classmethod、

2.非绑定方法:

  特殊之处:就是一个普通函数,根本没有自动传值一说。既不与类绑定也不与对象绑定、

3.代码实例:  

  

class Foo:

    def __init__(self, name):
        self.__name = name

    def fun1(self):  # 绑定给对象,应该由对象调用
        print(self)

    @classmethod
    def fun2(cls):  # 绑定给类,应该由类调用
        print(cls)

    @staticmethod
    def fun3():
        print('staticmethod')
原文地址:https://www.cnblogs.com/linbin7/p/11126372.html