import time
class Date:
def __init__(self,year,month,day):
self.year=year
self.month=month
self.day=day
@classmethod#哪个类来调用,就把这个类传入第一个参数cls,对象就是由此类产生的
def now(cls):
t=time.localtime()
return cls(t.tm_year,t.tm_mon,t.tm_mday)
@staticmethod#无论哪个类来调用,都是由父类产生的
def now_sta():
t=time.localtime()
return Date(t.tm_year,t.tm_mon,t.tm_mday)
class EuroDate(Date):
def __str__(self):
return 'year: %s month: %s day: %s '%(self.year,self.month,self.day)
#
d1=EuroDate.now()#结果触发了__str__函数,说明这个对象是由类自己实例化的
print(d1)#year: 2018 month: 9 day: 9
d2=EuroDate.now_sta()#结果是父类实例化的对象,说明是父类实例化的对象
print(d2)#<__main__.Date object at 0x000001F5E191F0B8>