类的绑定方法

绑定方法

对象绑定方法/类的绑定方法

绑定方法的特殊之处就是绑定给谁就是谁来掉,并且会把自身传过来

类的绑定方法

绑定给类的,类来调用,会把自身传过来

类的绑定方法用在什么地方?

不需要通过对象,只需要通过类就能获取到一些东西的时候,用类的绑定方法

类的绑定方法,可以由对象来调

class Person:
    def __init__(self,name,age):
        print(self)
        self.name=name
        self.age=age

    @classmethod
    def test(cls):
        print(cls)
        print('类的绑定方法')
        #类实例化产生对象,返回
        return cls('lqz',19)
 @classmethod
#     def get_obj_by_name(cls,name):
#         #1 去文件中查找名字为 name 的pickle文件
#         #2 反序列化成对象
#         #3 return 对象
#         pass
#     def get_obj_by_name(self,name):
#         # 1 去文件中查找名字为 name 的pickle文件
#         # 2 反序列化成对象
#         # 3 return 对象
#         pass
per1=Person.test()
# per2=Person('nick',19)
class Admin:
    def __init__(self,name,age):
        print(self)
        self.name=name
        self.age=age
    @classmethod
    def get_obj_by_name(cls,name):
        #取到类的名字
        type_class=cls.__name__.lower()

        pass

    #对象的绑定方法
    def get_obj_by_name1(self,name):

        pass
# lqz=Admin.get_obj_by_name('lqz')
# admin=Admin.get_obj_by_name1(None,'lqz')

admin=Admin('',19)

# admin1=admin.get_obj_by_name1('lqz')
#类的绑定方法,可以由对象来调
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    @classmethod
    def test(cls):
        print(cls)
        print('类的绑定方法')
# Person.test()
p=Person('nick',18)
#对象可以调用类的绑定方法,也是把该对象的类传入
p.test()


总结

classmethod 是个装饰器,放在类中函数上面,该函数就变成了类的绑定方法

类的绑定方法有类来调用,自动把类传过去(对象也可以调用,一般不用)

类的绑定方法用在什么地方?

不需要通过对象,只需要通过类就能完成某些事的时候,就把该方法定义为类的绑定方法

原文地址:https://www.cnblogs.com/aden668/p/11429787.html