Python學習第12天 類

2022-08-28 17:12:12 字數 2374 閱讀 4370

1、類的建立

語法:

class 類名():

#類的屬性

name = '喵醬'

#類的方法

def joke(self):

print('建立類成功')

2、類的例項化

語法:例項名 = 類名()

列如:

my_captain = captain()
意義:建立乙個例項,它可以呼叫所屬類的所有屬性和方法 知識點:

3、self引數

4、__init__方法

類的使用

1、繼承語法:classa(b)

其中a代表子類,b代表父類 對於子類來講,它能夠繼承父類所擁有的屬性和方法

2、類的多重繼承

在python當中,定義乙個類的時候可以同時繼承多個父類,這種方式被稱為多重繼承

例如:

# 垃圾類

class waste():

w_name = '垃圾'

# 『垃圾』類的乙個方法:**垃圾

def recycle_w(self):

print('**垃圾...')

# 『有害垃圾』類

class hazardouswaste(waste): # 括號中填寫父類的變數名

hw_name = '有害垃圾'

# 『有害垃圾』類的乙個方法:**有害垃圾

def recycle_hw(self):

print('**有害垃圾...')

# 建立『有害垃圾』類的例項hw

hw = hazardouswaste()

print('子類的例項hw與父類的是否存在關聯:')

print(isinstance(hw, waste))

print('子類的例項hw與『object』類的是否存在關聯:')

print(isinstance(hw, object))

print('結論:子類預設繼承『object』類,與其存在關聯!')

執行**後可以看到:hazardouswaste(waste)雖然只寫了乙個父類waste,卻與object存在關聯關係 這也印證了python中所有的類都預設繼承於object。換句話說,object是所有類的'父類'

3、類的重寫

什麼是類的方法重寫呢?當我們在定義類的方法時,方法的名字和父類的一樣,修改了其內容,就是類的方法重寫

動物中偶爾會出現變異的情況:假如有不會爬樹的貓。就可以重新分類為'變異貓'類

這裡定義乙個'貓'類和'變異貓'類,並修改了『變異貓』類的爬樹方法

# 『貓』類

class cat():

name = '貓'

# 爬樹方法

def climb_tree(self):

print('可以爬樹!')

# 『變異貓』類

class variationcat(cat):

v_name = '變異貓'

# 爬樹方法

def climb_tree(self):

print('不可以爬樹!')

print('『變異貓』的例項:')

# 『變異貓』類的例項vc

vc = variationcat()

# 呼叫爬樹方法

print('變異貓的爬樹方法:')

vc.climb_tree()

# 呼叫父類name屬性

print('變異貓父類的name屬性:')

print(vc.name)

print('變異貓自己的v_name屬性:')

print(vc.v_name)

print('變異貓,同樣是『貓』,但是『不可以爬樹!』')

print('-------------------------------------------')

print('『貓』的例項:')

# 『貓』類的例項c

c = cat()

# 呼叫爬樹方法

print('貓的爬樹方法:')

c.climb_tree()

# 呼叫name屬性

print('貓的name屬性:')

print(vc.name)

print('雖然子類『變異貓』修改了climb_tree()方法,但是父類完全不受影響,依然『可以爬樹!』')

可以看到,子類『變異貓』類修改了『爬樹』方法,對『貓』類完全不影響。這就造就了『變異貓』類不會爬樹的結果,但是『貓』類依然可以爬樹

類的重寫總結:

python學習第12天

一.迭代器 1.概念 迭代器指的是迭代取值的工具,迭代是乙個重複的過程,每次重複都是基於上一次的結果而繼續,單純的重複不是迭代 2.特徵 不依賴索引,通過next指標迭代所有資料,一次只取乙個,可以大大節省空間,迭代無限量的資料 3.可迭代物件 如果成員中含有 iter 這個方法,就是可迭代物件 d...

學習kotlin第12天 lambda表示式

繼續昨天的,從昨天的第14個坑開始。坑1 以map為例。文件上為如下 呼叫時由於 lambda 表示式在圓括號以外,而圓括號中已無其它引數,故可以省略 fun list map transform t r list fun main args array println doubled 在idea中...

python第25天 學習python第25天

今天是在尚學堂學習python第25天今天學習了使用者管理,許可權管理 使用者管理 1.使用者的登入與退出 語法 mysql h hostname p port u username p dbname e h hostname 指定要連線mysql的主機名或者ip hostname就是具體的主機名或...