1. self表示乙個類的例項物件本身。如果用了staticmethod就無視這個self了,就將這個方法當成乙個普通的函式使用了。
2. cls表是這個類本身。
# **為證
class a(object):
def func1(self):
print("func1:", self)
@staticmethod
def func2():
print("func2")
@classmethod
def func3(cls):
print("func3:", cls)
a = a()
a.func1() # 最常見的呼叫方式,但與下面的方式相同
# func1: <__main__.a object at 0x0000014788701eb8>
a.func1(a) # 這裡傳入例項a,相當於普通方法的self
# func1: <__main__.a object at 0x0000014788701eb8>
a.func2() # 這裡,由於靜態方法沒有引數,故可以不傳東西
# func2:
a.func3() # 這裡,由於是類方法,因此,它的第乙個引數為類本身。
# func3: print(a) # 可以看到,直接列印a,與上面那種呼叫返回同樣的資訊。
#
Python類中self引數用法詳解
python編寫類的時候,每個函式引數第乙個引數都是self,一開始我不管它到底是幹嘛的,只知道必須要寫上。後來對python漸漸熟悉了一點,再回頭看self的概念,似乎有點弄明白了。首先明確的是self只有在類的方法中才會有,獨立的函式或方法是不必帶有self的。self在定義類的方法時是必須有的...
python類中的self引數和cls引數
1.self表示乙個類的例項物件本身。如果用了staticmethod就無視這個self了,就將這個方法當成乙個普通的函式使用了。2.cls表是這個類本身。為證 class a object deffunc1 self print func1 self staticmethod deffunc2 p...
python類中的self引數和cls引數
1.self表示乙個類的例項物件本身。如果用了staticmethod就無視這個self了,就將這個方法當成乙個普通的函式使用了。2.cls表是這個類本身。為證 class a object deffunc1 self print func1 self staticmethod deffunc2 p...