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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中组合与继承的区别_python类与对象的组合与继承

發布時間:2023/12/19 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中组合与继承的区别_python类与对象的组合与继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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、類、類對象和實例對象

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

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

4、綁定

Python嚴格要求方法需要有實例才可以被調用,這種限制其實就是python所謂的綁定。

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

實現代碼如下:

class C:

count = 0

def __init__(self):

C.count += 1

def __del__(self):

C.count -= 1

6、定義一個棧(Stack)類,用于模擬一種具有后進先出(LIFO)特性的數據結構。至少需要有以下方法:

方法名

含義

isEmpty()

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

push()

往棧的頂部壓入一個數據項

pop()

從棧頂彈出一個數據項(并在棧中刪除)

top()

顯示當前棧頂的一個數據項

bottom()

顯示當前棧底的一個數據項

實現代碼如下:

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

python 類和對象的屬性

python類和對象的屬性分為類屬性和對象屬性兩大類,類屬性屬于類,而對象屬性屬于對象. 1. 父類的對象屬性會被子類的對象繼承. 2. 父類的類屬性會被子類繼承,還是作為類屬性,如果父類改變了類屬性 ...

python類與對象各個算數運算魔法方法總結

1.python類與對象各個算術運算魔法方法總結: 2.各個魔法方法應用舉例: 3.實例訓練: (1)我們都知道在 Python 中,兩個字符串相加會自動拼接字符串,但遺憾的是兩個字符串相減卻拋出異常 ...

python面向對象:類空間,對象空間, 組合

一. 類空間,對象空間 1. 類空間,對象空間 創建一個類就會創建一個類的名稱空間,用來存儲類中定義的所有名字,這些名字稱為類的屬性 而類有兩種屬性:靜態屬性和動態屬性 靜態屬性就是直接在類中定義的變 ...

python中的類,對象,實例,繼承,多態

------------恢復內容開始------------ 類 (通俗來講是 屬性和方法的集合) 用來描述具有相同的屬性和方法的對象的集合.它定義了該集合中每個對象所共有的屬性和方法. 對象,即為類 ...

python 類和對象

類和對象 類 1.類的組成 ? ?數據和函數,二者是類的屬性 2.兩個作用: 實例化 屬性引用 ?屬性引用:類名.屬性(增刪改查)? ?實例化: 類名加括號就是實例化,會自動出發__init__的運行 ...

Python類和對象

目錄 類與對象 其他方法 繼承 經典類和新式類 派生 組合 接口.歸一化設計與抽象類 繼承實現的原理 子類中調用父類的方法 指名道姓 super()方法 多態與多態性 封裝 單下劃線開頭 雙下劃線開頭 ...

python 類,對象

聲明類 ''' class 類名: '類的文檔字符串' 類體 ''' #我們創建一個類 class Data: pass 聲明類 class Person: #定義一個人類 role = 'perso ...

python——類與對象

__init__ 方法: 1.Init ?初始化方法的返回值必須是None. 3.類沒有定義階段,函數有定義階段(不調用不執行). 實例化時觸發__init__方法執行,為對象添加屬性.[t1=stu ...

python 類與對象解析

類成員:??? # 字段??????? - 普通字段,保存在對象中,執行只能通過對象訪問??????? - 靜態字段,保存在類中,? 執行 可以通過對象訪問 也可以通過類訪問??????? ??? # ...

隨機推薦

【.NET深呼吸】動態類型(擴充篇)

前面兩文中,老周已向大家介紹了關于動態類型對象的兩種級別的使用方案,本篇呢,老周再講一個自定義動態類型的例子. 前面給大家演示的例子中,動態類型中包裝的是字典類型來存儲數據的,這一次咱們換一種風味,老 ...

Matrix Factorization SVD 矩陣分解

Today we have learned the Matrix Factorization, and I want to record my study notes. Some kownledge ...

部署到IIS報錯:HTTP錯誤500.19,錯誤代碼0x80070021

查看網上IIS7出現這個問題解決辦法是: 因為 IIS 7 采用了更安全的 web.config 管理機制,默認情況下會鎖住配置項不允許更改.運行命令行 %windir%\system32\inets ...

unity, particleSystem的batch優化

一,單個光效的batch優化 理想狀態下一個由若干粒子堆出來的光效只需要一至兩個draw call: (1)至多使用alpha blend(墊底色)和additive(曝光)兩個材質球,兩shader ...

VMWare安裝Centos 6.9

VMWare下Centos 6.9安裝教程,記錄如下 1.新建虛擬機 (1)點擊文件-->新建虛擬機 (2)選擇 自定義(高級)-->下一步 (3)選擇Workstation 12.0-- ...

JS畫幾何圖形之五【過圓外一點作切線】

樣例:http://www.zhaojz.com.cn/demo/draw9.html 依賴:[點].[直線].[圓] //畫切線 //point 圓外的一點 //dot 圓心 //r 半徑 func ...

bzoj5153&uoj348 【WC2018】州區劃分

五十分就是裸的O(3^n)子集dp. $$f[S]*{w[S]^{p}}=\sum_{T \in S}{f[T]*{w[S-T]^{p}}}$$ 然后我們考慮優化這個dp,我們發現這是子集卷積的形式, ...

C 語言 字符串命令 strstr()的用法 實現將原字符串以分割串分割輸出

C 語言 字符串命令 strstr()的用法 實現將原字符串以分割串分割輸出 strstr() 命令是在原字符串中查找指定的字符串第一次出現的地址,用這個特性可以實現字符的分割,判斷是否包涵等功能: ...

Beta階段第1周/共2周 Scrum立會報告+燃盡圖 07

作業要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2389] 版本控制:https://git.coding.net/liuyy08 ...

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。