吐槽:學習物件導向就像你追乙個女神一樣,剛剛有點感覺了,過幾天又陷入絕望的感覺,很蛋疼。
類的語法
classperson(object):print("learning class")
test=person()#test就是類person的例項化物件#例項化,就是以person類為模板,在記憶體裡開闢一塊空間,存上
然後想加點東西,是誰在學習類。
class person(object):
def __init__(self,name):
self.name = name
def learng(self):
print(self.name,"is learning class")
test = person("jhon")
test.learng() #類例項化後就可以呼叫類中的方法了
#test就是類person的例項化物件
#例項化,就是以person類為模板,在記憶體裡開闢一塊空間,存上資料,賦值成乙個變數名
class person(object):
def __init__(self,name):
self.name = name
def learng(self):
print(self.name,"is learning class")
print(person)
# test = person("jhon")
# test.learng() #類例項化後就可以呼叫類中的方法了
#test就是類person的例項化物件
#例項化,就是以person類為模板,在記憶體裡開闢一塊空間,存上資料,賦值成乙個變數名
列印結果如下:
這說明即使類不例項化,這個person類本身也是已經存在記憶體裡的。如果例項化了?會有什麼反應了?
根據圖我們得知,其實self就是例項本身!例項化python會自動把這個例項本身通過self引數傳進去。
趁熱打鐵,接下來分解一下下面**分別是什麼意思
class role(object): #定義乙個類, class是定義類的語法,role是類名,(object)是新式類的寫法,必須這樣寫,以後再講為什麼
def __init__(self,name,role,weapon,life_value=100,money=15000): #初始化函式,在生成乙個角色時要初始化的一些屬性就填寫在這裡
self.name = name #__init__中的第乙個引數self,和這裡的self都 是什麼意思? 看下面解釋
self.role = role
self.weapon = weapon
self.life_value = life_value
self.money = money
上面的這個__init__()叫做初始化方法(或構造方法),在類被呼叫時,這個方法會自動執行,進行一些初始化的動作,所以我們這裡寫的__init__(self,name,role,weapon,life_value=100,money=15000)就是要在建立乙個角色時給它設定這些屬性,那第乙個self是幹毛用的呢?
初始化乙個角色,就需要呼叫類一次:
r1 = role('alex','police','ak47』) #生成乙個角色 , 會自動把引數傳給role下面的__init__(...)方法
r2 = role('jack','terrorist','b22』) #生成乙個角色
未完待續。。。。
python類中的建立物件
python中物件導向的知識 參考部落格 知識概念和c 大體類似,但是也有一些不同的地方需要注意 如 一 python中例項化結果,建立類,例如 class a def prt self print self print self.class 例項化來建立物件 t a t.prt 二 注意在c 中建...
python在類中建立執行緒
import threading import time class mythread threading.thread def run self for i in range 3 time.sleep 1 msg i m self.name print msg def saypoem self p...
Python中type()詳解 動態建立類
眾所周知 type 函式可以檢視變數的型別 先看乙個簡單的列子來看一下type檢視變數型別 class animal pass a animal print type a print type animal 可以發現我定義的animal類本身的型別是 type 從 python 直譯器的角度來看,當...