python中的self理解

2022-09-10 14:24:49 字數 1806 閱讀 2243

前言

先介紹下類和例項

物件導向最重要的概念就是類(class)和例項(instance),類時抽象的模板,比如學生這個抽象的事物,可以用乙個student類來表示。而例項時根據類建立出來的乙個個具體的「物件」,每乙個物件都從類中繼承有相同的方法,但各自的資料可能不同(根據各自的引數來定)。

1

class

student(object):

2pass

1)定義了student類

(object)表示該類從那個類繼承下來的,object類是所有類都會繼承的類

1 student=student()

2)student為定義的例項,通過student類建立出student例項,語法:建立例項是通過類名+()

1

class

student(object):

2def

__init__

(self,name,score):

3 self.name =name

4 self.score = score

3)student類起到模板的作用,在建立例項的時候,把我們認為必須繫結的屬性強制填寫進去,用到了python中的乙個內建方法__init__方法;在__init__方法的第乙個引數永遠是self,表示建立的類例項的本身,有了__init__方法在建立例項的時候就不能傳入空的引數,必須傳入和__init__方法匹配的引數。

1 >>>student = student("

hugh

", 99)

2 >>>student.name3"

hugh

"4 >>>student.score

5 99

1.函式和類中的方法的區別

類中的方法必須有乙個額外的第乙個引數的名稱,一般就是self,呼叫這個方法時,不會為這個引數賦值,這個特別的變數就是指物件本身。

所以類的方法一般需要新增self,而普通的方法不要新增self。

例如:

1

class test(object): #

建立個類23

def add(self,a,b):#

類中的方法45

print (a+b)

6def

display(self):78

print("

hello")

9 test = test()#

建立例項

1011 test.add(1,2)#

呼叫類中的方法

1213

test.display()

1415

#如果去掉self,會報執行錯誤

1617

def add02(a,b):#

普通的方法,不要新增self

1819

print (a+b)

"'假如乙個類稱為myclass和這個類的乙個例項myobject。當你呼叫這個物件的方法myobject.method(arg1, arg2)的時候,這會由python自動轉為myclass.method(myobject, arg1, arg2)——這就是self的原理了"'

2.類中為何要__init__初始化

1)支援帶引數的類的初始化

當乙個class,稍微複雜一點的時候,或者內部函式需要用得到的時候,往往都需要在,別人例項化你這個類之前,使用你這個類之前,做一些基本的,與自己的類有關的,初始化方面的工作。

而這部分工作,往往就放到__init__函式中去了。

關於python中self的理解

self可以這麼理解 class就是表示 汽車 然後 init 是一些汽車的基本定義,比如要有發動機,要有方向盤 在這個定義的過程中,可能需要一種引用,比如現在北京要求汽車都要裝自檢測系統,監測系統統計資料必定是某一輛車它自身的,是乙個 例項 邦定的行為,你的檢測功能不會也不允許去收集其他汽車的資料...

Python 理解類中self的含義

self代表的是類的例項,而不是類 class test object def prt self print self print self.class t test t.prt 執行結果 main test object at 0x10fe90fd0 從上面的執行結果可以看出,self指向是類的例...

python的self之個人理解

本文參考 python中的self一般用於類的方法中,當然乙個獨立的函式也可以加上self引數,但是如果沒有需要豈不是在給自己找麻煩,因為呼叫的時候還要傳進去乙個空引數 我以前都是這樣做的,慚愧 self在定義類的方法時是必須有的,雖然在呼叫時不必傳入相應的引數。當然self也可以換成其他的自己喜歡...