類:
成員屬性:描述物件的靜態特徵,如名字、身高體重
成員方法:描述物件的動態特徵,例如:吃飯、睡覺、打豆豆
『』『類的幫助資訊』』』 :指定類的文件字串python中類的定義,使用class關鍵字實現,語法如下:
class classname:
'''類的幫助資訊''' # 類文件字串
statement # 類體
statement:類體,由類變數(或類成員)、方法和屬性等定義語句組成,定義類時沒想好功能可以用pass語句代替
python3中類預設繼承object,可以這樣寫class dog:,等價class dog(object):
1.方法作用域屬於類,所以即便和不同函式重名,也不會被被覆蓋
2.方法的第乙個引數必須是self,但函式不要求
3.方法必須通過物件呼叫,而函式不需要
# 定義類
class
dogs
:# 等價class dog(object):
defbark
(self)
:# 成員方法,第乙個引數必須時self,代表當前呼叫物件
('我是小可愛--丁丁'
)dingding = dogs(
)# 例項化乙個物件
# 呼叫方法:不需要傳引數,self系統傳遞
# 呼叫形式:物件.方法([實參])
dingding.bark(
)# 輸出:我是小可愛--丁丁
# 方法連貫呼叫,方法返回self
class
dog:
defbark
(self)
('汪汪汪'
)return self # 返回self
defeat
(self)
('愛啃大骨頭'
)return self
dog = dog(
)dog.eat(
).bark(
)'''
輸出:愛啃大骨頭
汪汪汪'''
# 語法: 物件 = 類名([實參])
class
dogs
:def
sleep
(self)
('喜歡睡覺'
)ding = dogs(
)# 例項化乙個物件
(ding)
# 輸出:<__main__.dogs object at 0x000001fe30e242b0> 可以看出dings是dogs類的例項
(type
(ding)
)# 輸出:
# 檢視物件的類名
(ding.__class__)
# 輸出:
class
dog:
def__init__
(self,name,kind,age)
: self.name = name
self.kind = kind
self.age = age
defbark
(self)
('我是小可愛--頂定'
)dingding = dog(
'丁丁'
,'泰迪'
,'3'
('我是可愛的{}犬,我叫{},我今年{}歲了'
.format
(dingding.kind,dingding.name,dingding.age)
)'''
輸出:我是可愛的泰迪犬,我叫丁丁,我今年3歲了
'''# 檢視例項屬性
(dingding.__dict__)
# __dict__屬性檢視例項屬性輸出:
(dir
(dingding)
)# 檢視dog的屬性,包括例項屬
語法:
def __init__(self,arg1,arg2......):
函式體# 引數:arg1,arg2...根據需要自己定義
# 如果自己不定義構造方法,系統會自動生成乙個建構函式
def __init__(self):
pass
注意: 如果沒有定義構造方法,系統會生成乙個無參構造方法,如果自己定義了構造方法,則系統不會自動生成
乙個類只能有乙個構造方法,如果定義多個,後面的會覆蓋前面的
建構函式由系統在例項化物件時自動呼叫,不需要自己呼叫
class
dog:
def__init__
(self,name,king,age)
: self.name = name # 定義物件屬性,這個類所有的物件都具有該屬性
self.kind = king # 成員屬性必須通過self.引用,否則是普通的變數
self.age = age
defbark
(self)
('我是小可愛--丁丁'
)ding = dog(name=
'丁丁'
,king=
"泰迪"
,age=
"3")
('我是可愛的%s犬,%s,我今年%s歲了'
%(ding.kind,ding.name,ding.age)
)'''
輸出:我是可愛的泰迪犬,丁丁,我今年3歲了
'''
語法:
def __del__(self):
# to do
class
dog:
# 構造
def__init__
(self,name,kind,age)
: self.name = name
self.kind = kind
self.age = age
# 析構
def__del__
(self)
('拜拜了,二十年後又是一條好漢'
)def
bark
(self)
('我是小可愛--丁丁'
)dingding = dog(
'丁丁'
,'泰迪',3
('我是可愛的%s犬,%s,我今年%d歲了'
%(dingding.kind,dingding.name,dingding.age)
)del dingding # 銷毀物件,自動呼叫析構方法,類似與遺囑,並不是析構銷毀他,而是它快結束,給析構返回訊息
# 在函式中物件,當函式執行結束時,自動析構
deftest()
: td = dog(
'噹噹'
,'泰迪',3
)
__repr__作用同__str__,不過是給直譯器看的
class
amimal
:def
__init__
(self,name,age)
: self.name = name
self.__age = age
def__str__
(self)
:return
"name : {} age : {} "
.format
(self.name,self.__age)
def__repr__
(self)
:return self.__str__(
)a1 = amimal(
'zhu',3
(a1)
('我是一頭可愛的'
+str
(a1)
)
Python類和物件
1 建立類 語法 class classname 類的幫助資訊 類文件字串 class suite 類體 例如 class employee 所有員工的基類 empcount 0 def init self,name,salary self.name name self.salary salary ...
Python類和物件
python類和物件 類 具有相同的屬性和方法的物件的集合。物件 萬物皆物件。類和物件的關係 類是具有相同屬性方法物件的集合。類包含屬性和方法 語法 class 類名 屬性 方法定義乙個類 建立物件 屬性寫在類外的情況,就是通過物件,屬性,物件,方法的方式呼叫。屬性相對於類來說屬於全域性,每個方法都...
Python類和物件
類和物件 類 class 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類 的例項。方法 類中定義的函式。類變數 類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。方法重寫 如果從父類繼承的方法不能滿足子類...