Python類和物件

2021-10-03 09:20:00 字數 4232 閱讀 4929

類:

成員屬性:描述物件的靜態特徵,如名字、身高體重

成員方法:描述物件的動態特徵,例如:吃飯、睡覺、打豆豆

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,代表當前呼叫物件

print

('我是小可愛--丁丁'

)dingding = dogs(

)# 例項化乙個物件

# 呼叫方法:不需要傳引數,self系統傳遞

# 呼叫形式:物件.方法([實參])

dingding.bark(

)# 輸出:我是小可愛--丁丁

# 方法連貫呼叫,方法返回self

class

dog:

defbark

(self)

:print

('汪汪汪'

)return self # 返回self

defeat

(self)

:print

('愛啃大骨頭'

)return self

dog = dog(

)dog.eat(

).bark(

)'''

輸出:愛啃大骨頭

汪汪汪'''

# 語法: 物件 = 類名([實參])

class

dogs

:def

sleep

(self)

:print

('喜歡睡覺'

)ding = dogs(

)# 例項化乙個物件

print

(ding)

# 輸出:<__main__.dogs object at 0x000001fe30e242b0> 可以看出dings是dogs類的例項

print

(type

(ding)

)# 輸出:

# 檢視物件的類名

print

(ding.__class__)

# 輸出:

class

dog:

def__init__

(self,name,kind,age)

: self.name = name

self.kind = kind

self.age = age

defbark

(self)

:print

('我是小可愛--頂定'

)dingding = dog(

'丁丁'

,'泰迪'

,'3'

)print

('我是可愛的{}犬,我叫{},我今年{}歲了'

.format

(dingding.kind,dingding.name,dingding.age)

)'''

輸出:我是可愛的泰迪犬,我叫丁丁,我今年3歲了

'''# 檢視例項屬性

print

(dingding.__dict__)

# __dict__屬性檢視例項屬性輸出:

print

(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)

:print

('我是小可愛--丁丁'

)ding = dog(name=

'丁丁'

,king=

"泰迪"

,age=

"3")

print

('我是可愛的%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)

:print

('拜拜了,二十年後又是一條好漢'

)def

bark

(self)

:print

('我是小可愛--丁丁'

)dingding = dog(

'丁丁'

,'泰迪',3

)print

('我是可愛的%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

)print

(a1)

print

('我是一頭可愛的'

+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 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類 的例項。方法 類中定義的函式。類變數 類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。方法重寫 如果從父類繼承的方法不能滿足子類...