今天想和大家聊聊物件導向中的類和物件,其實一開始我學的雲裡霧裡,借鑑了乙個我以前看到過的解釋,希望可以用大家容易理解的方式來說道說道。
生活中每乙個具體的東西都可以被認為是物件,例如華為p40、小公尺10、蘋果11、oppo等手機,你可以認為這些物體是「物件」,雖然他們各不相同、各有特色,但是都可以歸結為「手機類」,因為具有相同的屬性,例如都有攝像頭、電池、顯示屏等。也有共同的功能方法,例如都可以打**、發簡訊、刷微博等。
類就是把有相同(屬性)和(方法)的「物件」歸結在一起。
以上這幾個具體的手機都是「手機類」例項化出來的「物件」
舉例:精華——雅詩蘭黛小棕瓶
程式語言——python
車——賓士
單身狗——你我他
#英雄類
class
hero
:#建構函式給例項變數賦值,定義兩個形參
def__init__
(self,chinesename,slogan)
:#引數傳給例項變數
#chinesename,slogan是所有英雄都會包含的屬性
#例項變數(成員變數)
self.chinesname=chinesename
self.slogan=slogan
#定義乙個函式例項對此描述(例項方法)
deffalsh
(self)
:print
(self.chinesname+
":我閃了過去"
) yasuo=hero(
"亞索"
,"death is like wind"
) yasuo.flash(
)print
(yasuo.slogan)
print
(yasuo.__dict__)
在類的方法中(如__init__),第一引數永遠是self,表示建立的類例項本身,而不是類本身。
self代表當前物件的位址。self能避免非限定呼叫造成的全域性變數。
self不是python的關鍵字,也可以用其他名稱命名,但是為了規範和便於讀者理解,推薦使用self。
1、全域性變數:在模組內、在所有函式外面、在class外面。
2、區域性變數:在函式內、在class的方法內(未加self修飾的)。
3、 靜態變數:在class內的,但不在class的方法內的。
4、 例項變數:在class的方法內的,用self修飾的變數。
例子
class
bankaccount
:#constructor構造器
def__init__
(self,accountnumber,accountname,balance)
: self.accountnumber=accountnumber
self.accountname=accountname
self.balance=balance
#存錢
defdeposit
(self,amount)
: self.balance=self.balance+amount
#取錢defwithdraw
(self,amount)
: self.balance=self.balance-amount
def__str__
(self)
:return
"({},{})"
.format
(self.accountnumber,self.balance)
b1=bankaccount(
"98"
,"tom"
,520
)b2=bankaccount(
"19"
,"jerry"
,999
)#tom取100元錢
b1.withdraw(
100)
#jerry存159元
b2.deposit(
150)
print
(b1.balance)
print
(b2.balance)
print
(b1.balance
Python3 物件導向程式設計 類
一 自定義類 1 屬性與方法 格式 class classname def init self,a,b self.a a self.b b def 一般都有乙個 init 函式來定義屬於這個類的引數,前後都被 包圍的函式為特殊方法 以 開頭的變數只能讀,不能寫,相當於private資料。如果重新實現...
Python3 物件導向程式設計
python使用class關鍵字來定義類 class car definfor self print this is a car car car car.infor 內建方法isinstance 來測試乙個物件是否為某個類的例項 公有成員 既可以在類的內部訪問,也可以在外部程式中使用 在idle環境...
python3 物件導向 類和例項
面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把大塊函式通過切割成小塊函式來降低系統的複雜度。物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的...