发布时间:2022-05-11 09:42:37 人气:167 作者:多测师
定义:在类里面把一个方法绑定给类,说白了类方法是给类用的,该方法由装饰器@classmethod所装饰,类.绑定
到类的方法(),会把类本身当做第一个参数自动传给绑定到类的方法中。
class A: #创建父类
x = 1
@classmethod #使用装饰器,变为类的绑定方法
def test(cls): #定义了类的方法
print(cls,cls.x)#拿掉一个类的内存地址后,就可以实例化或者引用类的属性了
class B(A): #子类B,B中没有test类的绑定方法,就去父类中找,并将类名当第一个位置参数自动传到方法里
x = 2
B.test() #调用test类的绑定方法
print(B.test) #查看B.test的属性
-------------输出结果----------------
2
> #test是A的绑定方法,这里B继承了
应用场景:
class Date:
def __init__(self,year,month,day):
self.year = year
self.month = month
self.day = day
@classmethod
def now(cls):
t = time.localtime()
obj = cls(t.tm_year,t.tm_mon,t.tm_mday)
return obj
@classmethod
def tomorrow(cls):
t = time.localtime(time.time()+86400)
obj = cls(t.tm_year,t.tm_mon,t.tm_mday)
return obj
class EuroDate(Date): #__str__,打印由这个类产生的对象时,会触发执行
def __str__(self): #定义在类内部,必须返回一个字符串类型
return "年:%s,月:%s,日:%s"%(self.year,self.month,self.day)
e1 = EuroDate(2016,12,13) #实例化对象e1
print(e1)
e2 = EuroDate.now() #调用类的绑定方法,并赋值给e2
print(e2) #打印返回结果
e3 = EuroDate.tomorrow() #调用类的绑定方法,并赋值给e3
print(e3) #打印返回结果
print(EuroDate.now) #查看数据类型
print(EuroDate.tomorrow) #查看数据类型
以上内容为大家介绍了python 类方法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/