python類中的self引數和cls引數

2021-08-23 14:43:46 字數 888 閱讀 8629

1. self表示乙個類的例項物件本身。如果用了staticmethod就無視這個self了,就將這個方法當成乙個普通的函式使用了。

2. cls表是這個類本身。

#

**為證

class

a(object):

deffunc1(self):

print("

func1:

", self)

@staticmethod

deffunc2():

print("

func2")

@classmethod

deffunc3(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,與上面那種呼叫返回同樣的資訊。

#

3. 更多: 類先呼叫__new__方法,返回該類的例項物件,這個例項物件就是__init__方法的第乙個引數self,即self是__new__的返回值。

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 def func1 self print func1 self staticmethod def func2...