国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

編程語言排行榜 Python中的cls和self有什么區(qū)別?

Python中的cls和self有什么區(qū)別?對于普通方法,第一個參數(shù)必須是self,它表示一個特定實例本身。如果忽略靜態(tài)方法,可以將其用作常規(guī)方法。對于classmethod,第一個參數(shù)是CLS,而不

Python中的cls和self有什么區(qū)別?

對于普通方法,第一個參數(shù)必須是self,它表示一個特定實例本身。如果忽略靜態(tài)方法,可以將其用作常規(guī)方法。對于classmethod,第一個參數(shù)是CLS,而不是self,它表示類本身。>>> A類(對象):def foo1(self):打印“Hello”self@staticmethoddefFoo2():print“Hello”@classmethoddef foo3(CLS):print“Hello”,CLS>>>> a=a()>>> a。foo1()是最常見的調用方式,但它和下面的方式一樣你好

區(qū)別在于以下兩個方面:

1。Classmethod類方法必須將類作為第一個參數(shù),“can access the class variable”,可以通過實例名或類名訪問;

2。靜態(tài)方法Static method不強制傳入self或CLS,對類和實例一無所知(相當于將class方法變成普通方法,獨立于類),“無法訪問類”還可以通過實例名或類名訪問實例變量。

具體用途如下:

1。Classmethod類方法依賴self或CLS來傳遞參數(shù),因此它必須寫在類中,與類密切相關,并且可以訪問類外的類變量;

2。靜態(tài)方法靜態(tài)方法完全獨立于類,因此它不能訪問類方法。

就這么簡單。是否需要訪問類變量取決于是否需要訪問類方法。