不太懂类方法有啥用,能举例帮我理解一下么,谢啦!
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
2018-06-26
类方法,可以用于不影响原有函数的情况下,重新构造函数。
有那么一个应用场景。比如类定义如下:
class exp(object):
def __init__(self,y=2018,m=6,d=27):
self.y = y
self.m = m
self.d = d
def get_date(self):
print("年份:%s" % self.y)
print("月份:%s" % self.m)
print("某日:%s" % self.d)
这个类要求我们实例化时,输入y,m,d三个参数。
res = exp('2018','6','27')
res.get_date()
但假设我们获得的日期是字符串形式是“2018-06-27”时,就需要我们做转换处理。当然我们可以每次将字符串转换成y、m、d。这个太麻烦了。
此时,我们利用类方法解决这个问题
class exp(object):
def __init__(self,y=2018,m=6,d=27):
self.y = y
self.m = m
self.d = d
@classmethod
def deal(cls,str):
y,m,d = map(int,str.split('-'))
#无意发现这是个懵逼的表情→('-')
return cls(y,m,d)
def get_date(self):
print("年份:%s" % self.y)
print("月份:%s" % self.m)
print("某日:%s" % self.d)
这时候我们就可以下面这样来获得返回啦
resu = exp.deal('2018-06-27')
resu.get_date()
这样是否对你有帮助?
举报