类的绑定方法

Posted aden668

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的绑定方法相关的知识,希望对你有一定的参考价值。

绑定方法

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

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

类的绑定方法

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

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

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

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

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 是个装饰器,放在类中函数上面,该函数就变成了类的绑定方法

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

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

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

以上是关于类的绑定方法的主要内容,如果未能解决你的问题,请参考以下文章

面向对象编程(类的绑定方法与非绑定方法)

093 类和对象的绑定方法和非绑定方法

面向对象 --- 类的绑定方法,面向对象高阶

python tips:类的绑定方法(bound)和非绑定方法(unbound)

全面解析python类的绑定方法与非绑定方法

类的绑定方法