示例如下:
1. ⼈類
屬性: 姓名
⾎量 持有的槍
⽅法:安⼦彈
安彈夾拿槍(持有搶) 開槍
2. ⼦彈類
屬性:
殺傷⼒
方法:
傷害敵⼈(讓敵⼈掉⾎)
3. 彈夾類
屬性:
容量(⼦彈儲存的最⼤值)
當前儲存的⼦彈
⽅法:儲存⼦彈(安裝⼦彈的時候)
彈出⼦彈(開槍的時候)
4. 槍類
屬性:
彈夾(預設沒有彈夾,需要安裝)
⽅法:連線彈夾(儲存彈夾)
射⼦彈
# 人類
class ren:
def __init__(self,name):
self.name = name # 人的名字
self.xue = 100 # 血量
self.qiang = none # 人拿的槍枝名字
# 定義返回屬性值函式
def __str__(self):
return self.name+"剩餘血量"+str(self.xue)
# 安裝子彈
def anzidan(self,danjia,zidan):
danjia.baocunzidan(zidan)
# 安彈夾
def andanjia(self, qiang, danjia):
qiang.lianjiedanjia(danjia)
# 拿槍
def naqiang(self, qiang):
self.qiang = qiang
# 開槍
def kaiqiang(self, diren):
self.qiang.she(diren)
# 掉血
def diaoxue(self, shashangli):
self.xue -= shashangli
#彈夾類
class danjia:
def __init__(self, rongliang):
self.rongliang = rongliang
self.rongnalist =
def __str__(self):
return "彈夾當前的⼦彈數量為:" + str(len(self.rongnalist)) + "/"
def baocunzidan(self, zidan):
if len(self.rongnalist) < self.rongliang:
def chuzidan(self):
# 判斷當前彈夾中是否還有⼦彈
if len(self.rongnalist) > 0:
# 獲取最後壓⼊到單間中的⼦彈
zidan = self.rongnalist[-1]
self.rongnalist.pop()
return zidan
else:
return none
# 子彈
class zidan:
def __init__(self,shashangli):
self.shashangli = shashangli
def shanghai(self,diren):
diren.diaoxue(self.shashangli)
#槍類class qiang:
def __init__(self):
self.danjia = none
def __str__(self):
if self.danjia:
return "槍當前有彈夾"
else:
return "槍沒有彈夾"
def lianjiedanjia(self,danjia):
if not self.danjia:
self.danjia = danjia
def she(self,diren):
zidan = self.danjia.chuzidan()
if zidan:
zidan.shanghai(diren)
else:
print("沒有⼦彈了,放了空槍....")
#建立⼀個⼈物件
laowang = ren("⽼王")
#建立⼀個彈夾
danjia = danjia(20)
print(danjia)
#迴圈的⽅式建立⼀顆⼦彈,然後讓⽼王把這顆⼦彈壓⼊到彈夾中
i=0while i<5:
zidan = zidan(5)
laowang.anzidan(danjia,zidan)
i+=1
#測試⼀下,安裝完⼦彈後,彈夾中的資訊
print(danjia)
#建立⼀個槍物件
qiang = qiang()
print(qiang)
#讓⽼王,把彈夾連線到槍中
laowang.andanjia(qiang,danjia)
print(qiang)
#建立⼀個敵⼈
diren = ren("敵⼈")
print(diren)
#讓⽼王拿起槍
laowang.naqiang(qiang)
#⽼王開槍射敵⼈
laowang.kaiqiang(diren)
print(diren)
print(danjia)
laowang.kaiqiang(diren)
print(diren)
print(danjia)
python 類和物件(2)
python 的魔法方法 雙下劃線包圍的函式 init self,param1,param2 相當於建構函式 class ball def init self,name self.name name def kick self print 我叫 s,該死的,誰踢我.self.name b ball ...
python 類和物件關係及物件建立過程
python從設計之初就已經是一門物件導向的語言,正因為如此,在python中建立乙個類和物件是很容易的類 class 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。類由 類名 屬性 方法 構成 方法 類中定義的函式。類變數 類變數在整個例項化...
類和物件的關係
類是具有相同資料結構 屬性 和相同操作功能 行為 物件的集合。物件就是符合某種類所產生的乙個例項。物件與類的關係是 物件的共性抽象為類,類的例項化就是物件。類是乙個抽象的概念,而物件是具體的,比如說車是乙個類的話,張三的那輛賓士車就是車這個類的乙個例項,動物是乙個類的話,李四的家養的那只貓就是動物類...