python中类的使用及学习记录(一)

作者: laokou 分类: 水处理 发布时间: 2017-10-23 17:03
作为python第一帖,先贴一个简单的游戏吧:
中欧大战,成员用class类定义-。-
=============================================================
from random import randint
print("-----------------中欧大战-------------------V0.1")
class country:#定义一个类
    life=100 #类的共用变量,生命初始值为100
    def __init__(self,name,life):
        self.name=name #实例变量在构造函数中自动生成
        self.life=life
    def lifeadd(self): #实例的方法
        self.life+=50 #实例的属性+1,需要用self来定义,否则报错,提示实例中会没有这个属性
    def lifesub(self):
        self.life-=50
china=country("china",100)
usa=country("usa",100)
ger=country("ger",100)
rus=country("rus",100)
#=================================================================
dic={1:china,2:usa,3:ger,4:rus}
gameover=0
while gameover==0:
    tmp1=randint(1,4)
    tmp2=randint(1,4)
    while tmp1==tmp2:
        tmp1=randint(1,4)
        tmp2=randint(1,4)
    dic[tmp1].lifeadd()
    dic[tmp2].lifesub()
    for i in dic:
        print(dic[i].name,"的生命值为",dic[i].life)
    input("按任意键继续游戏")
    for i in dic: #注意,不是in dic[i]
        if dic[i].life==0:
            print(dic[i].name,"的生命值已经为0,游戏结束")
            gameover=1 #循环跳出仍然有问题,将位置放到while后面就可以了,侧面规避问题-.-