卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

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

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

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

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

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

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

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

具體用途如下:

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

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

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

Python中的classmethod和staticmethod有什么具體用途?

靜態(tài)方法:在一個方法中,您不需要訪問任何實(shí)例方法和屬性,只需傳入?yún)?shù)并返回數(shù)據(jù)即可,因此適合使用靜態(tài)方法來定義

類方法:您至少需要一個CLS參數(shù),通過它可以獲得類本身的屬性方法等元信息。當(dāng)存在子類繼承時,子類對象被傳入。