python初學 class類士兵開槍案例

2021-10-22 02:13:43 字數 2223 閱讀 9891

#引入time中的sleep函式,豐富內容

from time import sleep

#定義槍類

class

gun:

def__init__

(self,gun_type,bullets)

:#定義槍的初始屬性

self.gun_type = gun_type

self.bullets = bullets

defgun_fire

(self)

:#定義開槍,用sleep函式形成開槍過程,開槍1次,子彈減少1

print

('firing'

)for i in

range(20

):print

("-"

* i +

'>'

,end=

'\r'

) sleep(

0.02

) self.bullets -=

1print

('fire over,rest bullets: %d'

% self.bullets)

sleep(

0.05

)def

add_bullets

(self,count)

:#裝填子彈數量

print

('adding bullets...'

)for i in

range(20

):print

("-"

* i +

'>'

,end=

'\r'

) sleep(

0.05

) self.bullets += count

print

('add completed, rest bullets: %d'

% self.bullets)

#建立士兵類

class

soldier

:def

__init__

(self,name,gun)

:#定義士兵屬性,姓名和槍

self.name = name

self.gun = gun

def__str__

(self)

:#輸出士兵擁有的槍型別

return

'soldier [%s] has a [%s]'

%(self.name,self.gun.gun_type)

deffire

(self)

:#士兵開槍

gun.gun_fire(

)#建立敵人類

class

enemy

:def

__init__

(self,num)

:#定義初始敵人數量

self.num = num

defenemy_die

(self)

:#每開槍一次,敵人減少1個,如果敵人為0,返回1

self.num -=

1print

('enemy left [%d]'

% self.num)

if self.num ==0:

print

('there is no enemy'

)return

1return

0gun = gun(

'qbz95-1',5

)#95-1自動步槍,5發子彈的初始槍gun

xusanduo = soldier(

'xusanduo'

,gun)

#士兵許三多

enemy = enemy(20)

#設定初始敵人數量為20

print

(xusanduo)

#列印許三多的資訊

while

true

: xusanduo.fire(

)#許三多開槍

no_enemy = enemy.enemy_die(

)#接收敵人是否消滅完畢的資訊

if gun.bullets ==0:

#判斷是否還有子彈,如果沒有就裝彈

gun.add_bullets(10)

if no_enemy:

#如果敵人為0,退出迴圈

break

python基礎篇 Class 類

class 類 特點 乙個抽象的物件,是物件導向語言的核心,類可以不繼承或多繼承。標識 class 例子 class a object 這是乙個演示的類 count a def init self,a self.a a def str self print count a s,list a s se...

Python類中的方法(CLASS)

在類中可以根據需要定義一些方法,定義方法採用def關鍵字,在類中定義的方法至少會有乙個引數,一般以名為 self 的變數作為該引數 用其他名稱也可以 而且需要作為第乙個引數。舉例 class people sname xiaohong high 172.5 weight 180 男 def eat ...

8 1 學習python的類class

二 定義和使用類 早期的程式語言是面向過程的,資料和函式之間是沒有任何直接聯絡的,它們之間聯絡的方式就是通過函式呼叫提供引數的形式將資料傳入函式進行處理,但這可能因為錯誤的傳遞引數 錯誤地修改了資料而導致程式出錯,當需要修改或維護程式時要從程式提供的一堆資料中去尋找和修改它們。要擴充套件函式的功能,...