classmethod(function)
classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法,使用方法如下:
简单来说就是在构造函数里增加了静态方法,在初始化之前先执行静态方法进行前处理,然后再执行构造函数。
参考:python @classmethod 的使用场合 - 知乎
# 初始类:
class Data_test(object):
day=0
month=0
year=0
def __init__(self,year=0,month=0,day=0):
self.day=day
self.month=month
self.year=year
def out_date(self):
print "year :"
print self.year
print "month :"
print self.month
print "day :"
print self.day
# 新增功能:
class Str2IntParam(Data_test):
@classmethod
def get_date(cls, string_date):
#这里第一个参数是cls, 表示调用当前的类名
year,month,day=map(int,string_date.split('-'))
date1=cls(year,month,day)
#返回的是一个初始化后的类
return date1
# 使用:
r = Str2IntParam.get_date("2016-8-1")
r.out_date()
# 输出:
year :
2016
month :
8
day :
1