實(shí)例方法睡雇,就是類中定義的普通類型的方法,比如構(gòu)造函數(shù):
def init(self, x, y):
pass
靜態(tài)方法饮醇,可以無需實(shí)例化進(jìn)行使用, 但是在使用的時(shí)候需要通過類名進(jìn)行調(diào)用即 cls.check_str
@staticmethod
def check_str(str):
return True
靜態(tài)方法它抱,也可以作為數(shù)據(jù)格式化組件進(jìn)行使用,通過靜態(tài)方法格式化數(shù)據(jù)后朴艰,返回實(shí)例化后的類, 如此使用有個(gè)弊端观蓄,即類名修改的時(shí)候,靜態(tài)方法返回的類調(diào)用也要進(jìn)行修改
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))
類方法祠墅,解決靜態(tài)方法中 類名稱修改后侮穿,靜態(tài)方法返回的類條用也需要修改的問題
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))
最后注意:
靜態(tài)方法沒有self
動(dòng)態(tài)方法中也沒有self,變?yōu)榱薱ls饵隙,當(dāng)然這個(gè)名稱可以自己改cls是一個(gè)規(guī)范