python中的類方法、靜態方法、對象方法
阿新 • • 發佈:2018-09-04
pre sin 不能 ron require 修飾 所有 method 進行
註:以下都是以公有為前提,私有方法只能在類內部調用,不需多講。
1、對象方法
這種方法都有一個默認參數:self 這代表實例的這個對象
def __init__(self): print("初始化對象")
類是不能直接調用對象方法:
class User(object): name = ‘zs‘ def __init__(self): print("初始化對象") User.__init__()
這樣調用拋出一個錯誤:TypeError: __init__() missing 1 required positional argument: ‘self‘
2、類方法
類方法顧名思義,類的方法,可以直接用類名進行調用;也可以通過類實例化的對象進行調用
class User(object): name = ‘zs‘ __pass = 1223 def __init__(self): print("初始化對象") @classmethod #修飾器 def changeName1(cls): cls.name = ‘ls‘ print("類的方法%s"%(cls.__pass))
changeName1就是類方法,前面需要註明修飾器:@classmethod ,並且有一個默認參數cls 也就是這個類本身。
3、靜態方法
其實靜態方法可以理解為一種特殊的類方法,它跟普通類方法就兩點區別:
(1)修飾器不一樣
(2)沒有默認參數
其余的跟類方法一模一樣
class User(object): name = ‘zs‘ __pass = 1223 def __init__(self): print("初始化對象") @classmethod #修飾器 def changeName1(cls): cls.name = ‘ls‘ print("類的方法%s"%(cls.__pass)) @staticmethoddef changeName2(): User.name = ‘ww‘ print("靜態方法") u = User() u.changeName1() User.changeName1() u.changeName2() User.changeName2()
總結:一個類實例化的對象可以調用類裏面所有的公共方法,類只能調用類方法和靜態方法(如果是私有方法,只能再類內部調用。)
python中的類方法、靜態方法、對象方法