实例方法,就是类中定义的普通类型的方法,比如构造函数:
def init(self, x, y):
pass
静态方法,可以无需实例化进行使用, 但是在使用的时候需要通过类名进行调用即 cls.check_str
@staticmethod
def check_str(str):
return True
静态方法,也可以作为数据格式化组件进行使用,通过静态方法格式化数据后,返回实例化后的类, 如此使用有个弊端,即类名修改的时候,静态方法返回的类调用也要进行修改
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
@staticmethod
def parse_from_string(date_str):
year, month, day = tuplu(date_str.split("-"))
return Date(int(year), int(month), int(day))
类方法,解决静态方法中 类名称修改后,静态方法返回的类条用也需要修改的问题
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
@classmethod
def from_string(cls, date_str):
year, month, day = tuplu(date_str.split("-"))
return cls(int(year), int(month), int(day))
最后注意:
静态方法没有self
动态方法中也没有self,变为了cls,当然这个名称可以自己改cls是一个规范
网友评论