前言
先介紹下類和例項
物件導向最重要的概念就是類(class)和例項(instance),類時抽象的模板,比如學生這個抽象的事物,可以用乙個student類來表示。而例項時根據類建立出來的乙個個具體的「物件」,每乙個物件都從類中繼承有相同的方法,但各自的資料可能不同(根據各自的引數來定)。
1class
student(object):
2pass
1)定義了student類
(object)表示該類從那個類繼承下來的,object類是所有類都會繼承的類
1 student=student()
2)student為定義的例項,通過student類建立出student例項,語法:建立例項是通過類名+()
1class
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。
例如:
1class 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也可以換成其他的自己喜歡...