__init__方法
class
phone()
:#魔術方法之一:__名字__()
def__init__
(self)
:print
("*****init==="
)# phone類裡面的方法:call
defcall
(self)
:print
("===price=="
)phone1 =phone(
)
輸出:
==
===init==
=
底層實現流程:
1.phone1 = phone()利用類建立物件,讀到phone()時,首先查詢phone()類。
2.利用phone類,向記憶體申請一塊和類同樣大小的空間。
3.向phone類中查詢有沒有__init__方法;若沒有,則則將新空間賦值給phone1;
4.若有,則進入__init__方法,執行相應內容,再將記憶體賦值給物件phone1。
5.__init__中的self為新建立的空間位址,也就是物件phone1。
class
phone()
:#魔術方法之一:__名字__()
def__init__
(self)
: self.brand =
"xiaomi"
self.price =
4999
# phone類裡面的方法:call
defcall
(self)
:print
("===price=="
,self.price)
phone1 =phone(
)phone1.call(
)phone2 = phone(
)phone2.price =
5999
phone2.call(
)
其中,self.brand和self.price兩句是在執行__init__方法時,在各自的物件記憶體中動態的建立了各自的屬性。
class
person()
:def
__init__
(self,name,age)
: self.name = name
self.age = age
defeat(self,food)
:print
('{}正在吃{}!'
.format
(self.name,food)
)def
run(self)
:print
('{},今年{}歲了!'
.format
(self.name,self.age)
)p1 = person(
'小花',18
)p1.eat(
'肉夾饃'
)p1.run(
)p2 = person(
'小驢',17
)p2.eat(
'漢堡包'
)p2.run(
)
小花正在吃肉夾饃!
小花,今年18歲了!
小驢正在吃漢堡包!
小驢,今年17歲了!
可以為方法指定引數,那麼不同的物件就有不同的屬性和方法。引數需要呼叫時動態傳入。 python物件導向學習 python物件導向學習
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...
python學習 物件導向
繼承 從已經有的類建立新類的過程,提供繼承資訊的叫父類 超類 基類 得到繼承資訊的叫子類 派生類 繼承是實現 復用的方式,繼承關係是一種is a關係。a student is a person.a teacher is a person.class person 定義人類 屬性name 名字 屬性n...
python物件導向學習
1.物件 物件是資料和功能 函式 的集合體 2.類 類是具有共同屬性 資料 函式 的物件的總稱 注 先定義類後例項化物件 3.屬性訪問 可以通過 dict 訪問屬性的值 4.屬性查詢和方法繫結 物件的命名空間裡只存放著物件獨有的屬性,而物件們相似的屬性是存放於類中的。物件在訪問屬性時,會優先從物件本...