码迷,mamicode.com
首页 > 其他好文 > 详细

类的绑定方法

时间:2019-08-29 16:00:46      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:序列   eth   获取   @class   name   ret   test   类实例化   装饰器   

绑定方法

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

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

类的绑定方法

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

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

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

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

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

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

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

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

类的绑定方法

标签:序列   eth   获取   @class   name   ret   test   类实例化   装饰器   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!