python物件導向練習 士兵開槍問題

2021-10-09 18:26:39 字數 1645 閱讀 8987

(1)屬性:型號(model),子彈數目(bullet_count)

(2)方法:發射子彈(shoot),裝填子彈(add_bullet)

(1)屬性:姓名(name),槍名(gun)

(2)方法:**(fire)

class gun():

"""槍類,

屬性:型號,子彈數目

方法:發射子彈,裝子彈"""

def __init__(self, model, bullet_count):

"""model:型號

bullet_count:子彈數目

max_bullet_count:最大子彈數目"""

self.model = model

self.bullet_count = bullet_count

self.max_bullet_count = 10

# 射擊方法,在子彈還有的情況下,每射擊一次子彈減少乙個

def shoot(self):

if self.bullet_count > 0:

self.bullet_count -= 1

else:

print("沒有子彈了,請先安裝子彈。")

# 新增子彈方法,在子彈沒有裝滿的情況下,每次新增乙個子彈

def add_bullet(self):

if self.bullet_count < self.max_bullet_count:

self.bullet_count += 1

else:

print("子彈已裝滿")

# 新增子彈方法,在子彈沒有裝滿的情況下,每次裝滿子彈

def add_bullet_max(self):

if self.bullet_count < self.max_bullet_count:

self.bullet_count += (self.max_bullet_count - self.bullet_count)

class soldier():

"""屬性:name, gun名

方法:**(fire)"""

def __init__(self, name, gun_name):

self.name = name

self.gun_name = gun_name

# **方法, 呼叫gun裡面的射擊方法

def fire(self):

self.gun_name.shoot()

#裝子彈

def add_bullets(self):

self.gun_name.add_bullet_max()

gun01 = gun("ak47", 10)

soldier01 = soldier("caohan", gun01)

soldier01.fire()

soldier01.fire()

print("士兵射擊二次之後剩餘子彈個數"+str(soldier01.gun_name.bullet_count))

soldier01.add_bullets()

print("士兵射擊二次之後,將子彈填滿之後的個數

"+str(soldier01.gun_name.bullet_count))

結果:

C 物件導向練習2 士兵開槍

查詢子彈數量 public int querybulletsnum 槍的建構函式 public gun string name,int bulletnumber 安裝子彈 public void install bullet int number 開槍射擊 public void shot 沒有子彈...

python物件導向封裝 士兵突擊

重點理解 乙個物件的屬性,可以是另乙個類建立的物件。專案需求 1 士兵許三多有一把ak47 2 士兵可以 3 槍能夠發射子彈 4 槍能夠裝填子彈 專案分析 根據專案需求,可以提煉出兩個類,槍和人。槍類的屬性有 名字 子彈數量 槍類的方法有 裝填子彈 射出子彈 人類的屬性有 名字 槍 人類的方法有 因...

python物件導向練習

練習一 class person def init self,name,age,weight self.name name self.age age self.weight weight defchi self self.weight 2def excese self self.weight 1o1...