日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 类组合_python类与对象的组合与继承

發(fā)布時(shí)間:2025/3/21 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 类组合_python类与对象的组合与继承 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、把類的對象實(shí)例化放到一個(gè)新的類里面叫做類的組合,組合就是指幾個(gè)橫向關(guān)系的類放在一起,縱向關(guān)系的類放在一起是繼承,根據(jù)實(shí)際應(yīng)用場景確定。簡單的說,組合用于“有一個(gè)”的場景中,繼承用于“是一個(gè)”的場景中。例如,水池里有一個(gè)烏龜,天上有一個(gè)鳥,地上有一個(gè)小甲魚,這些適合使用組合。青瓜是瓜,女人是人,鯊魚是魚,這些就應(yīng)該使用繼承啦實(shí)例如下:

class Turtle:

def __init__(self,x):

self.num = x

class Fish:

def __init__(self,x):

self.num = x

class Pool:

def __init__(self, x, y):

self.turtle = Turtle(x)

self.fish = Fish(y)

def print_num(self):

print("水池總共有烏龜 %d 只,小魚 %d 只" % (self.turtle.num,self.fish.num))

pool = Pool(1,10)

pool.print_num()

2、類、類對象和實(shí)例對象

當(dāng)你這個(gè)類定義完的時(shí)候,類定義就變成類對象,可以直接通過“類名.屬性”或者“類名.方法名()”引用或使用相關(guān)的屬性或方法。

3、對于類的應(yīng)用,我們一般不要試圖定義出類的所有特性和方法,應(yīng)該利用繼承和組合的機(jī)制來進(jìn)行擴(kuò)展,另外,我們還可以利用不同的詞性來進(jìn)行命名,對于屬性一般是用名詞,對于方法名一般用動詞。

4、綁定

Python嚴(yán)格要求方法需要有實(shí)例才可以被調(diào)用,這種限制其實(shí)就是python所謂的綁定。

5、在一個(gè)類中定義一個(gè)變量,用于跟蹤該類有多少個(gè)實(shí)例被創(chuàng)建(當(dāng)實(shí)例化一個(gè)對象,這個(gè)變量+1,當(dāng)銷毀一個(gè)對象,這個(gè)變量自動-1):

實(shí)現(xiàn)代碼如下:

class C:

count = 0

def __init__(self):

C.count += 1

def __del__(self):

C.count -= 1

6、定義一個(gè)棧(Stack)類,用于模擬一種具有后進(jìn)先出(LIFO)特性的數(shù)據(jù)結(jié)構(gòu)。至少需要有以下方法:

方法名

含義

isEmpty()

判斷當(dāng)前棧是否為空(返回 True 或 False)

push()

往棧的頂部壓入一個(gè)數(shù)據(jù)項(xiàng)

pop()

從棧頂彈出一個(gè)數(shù)據(jù)項(xiàng)(并在棧中刪除)

top()

顯示當(dāng)前棧頂?shù)囊粋€(gè)數(shù)據(jù)項(xiàng)

bottom()

顯示當(dāng)前棧底的一個(gè)數(shù)據(jù)項(xiàng)

實(shí)現(xiàn)代碼如下:

class Stack:

def __init__(self):

self.stack = []

def Isempty(self):

if len(self.stack) == 0:

self.Isempty1=True

print(self.Isempty1)

else:

self.Isempty1 = False

print(self.Isempty1)

def push(self,x):

self.stack.append(x)

def pop(self,y):

if len(self.stack) == 0:

print("我為空的,不能夠彈出")

else:

self.stack.pop(y)

def top(self):

if len(self.stack) == 0:

print("我為空的,不能夠彈出")

else:

print(self.stack[len(self.stack)-1])

def bottom(self):

if len(self.stack) == 0:

print("我為空的,不能夠彈出")

else:

print(self.stack[0])

a = Stack()

a.Isempty()

a.pop(2)

a.push(3)

a.push(4)

a.push(5)

a.top()

a.bottom()

總結(jié)

以上是生活随笔為你收集整理的python 类组合_python类与对象的组合与继承的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。