|
三分钟透彻理解Python中的@staticmethod和@classmethod引入ClassMethodStaticMethod这篇博文主要讲解以下问题:@classmethod和@staticmethod在Python中是什么意思,它们有何区别?我应该在何时使用它们,为什么要使用它们,以及如何使用它们?@classmethod告诉一个类,这是一个应该被子类继承的方法,或者某种程度上是这样。然而,这样做的目的是什么呢?为什么不直接定义类方法,而不添加@classmethod、@staticmethod或任何@定义呢?引入虽然@classmethod和@staticmethod非常相似,但它们在用法上有轻微的区别:classmethod必须将一个类对象的引用作为第一个参数,而staticmethod可以不带任何参数。Example:classDate(object):def__init__(self,day=0,month=0,year=0):self.day=dayself.month=monthself.year=year@classmethoddeffrom_string(cls,date_as_string):day,month,year=map(int,date_as_string.split('-'))date1=cls(day,month,year)returndate1@staticmethoddefis_date_valid(date_as_string):day,month,year=map(int,date_as_string.split('-'))returnday
|
|