绑定方法
对象绑定方法/类的绑定方法
绑定方法的特殊之处就是绑定给谁就是谁来掉,并且会把自身传过来
类的绑定方法
绑定给类的,类来调用,会把自身传过来
类的绑定方法用在什么地方?
不需要通过对象,只需要通过类就能获取到一些东西的时候,用类的绑定方法
类的绑定方法,可以由对象来调
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 是个装饰器,放在类中函数上面,该函数就变成了类的绑定方法
类的绑定方法有类来调用,自动把类传过去(对象也可以调用,一般不用)
类的绑定方法用在什么地方?
不需要通过对象,只需要通过类就能完成某些事的时候,就把该方法定义为类的绑定方法