day06_01 类 小事例

dog.py

__author__ = "Alex Li"


class Dog:
    def __init__(self,name):
        self.name = name

    def bulk(self):
        print("%s: wang wang wang!" % self.name)


d1 = Dog("陈荣华")
d2 = Dog("陈三炮")
d3 = Dog("陈老泡")

d1.bulk()
d2.bulk()
d3.bulk()

cs_play.py

__author__ = "Alex Li"


class Role:
    n = 123 #类变量
    n_list = []
    name = "我是类name"
    def __init__(self, name, role, weapon, life_value=100, money=15000):
        #构造函数
        #在实例化时做一些类的初始化的工作
        self.name = name #r1.name=name实例变量(静态属性),作用域就是实例本身
        self.role = role
        self.weapon = weapon
        self.__life_value = life_value
        self.money = money
    def __del__(self):
        # 构造函数
        # 在实例释放、销毁的时候自动执行的,通常用于做一些收尾工作
        pass #print("%s 彻底死了。。。。" %self.name)

    def show_status(self):
        # 私有属性 __life_value
        print("name:%s weapon:%s life_val:%s" %(self.name,
                                                 self.weapon,
                                                self.__life_value))
    def __shot(self): # 类的方法,功能 (动态属性)
        print("shooting...")

    def got_shot(self):
        self.__life_value -=50
        print("%s:ah...,I got shot..."% self.name)

    def buy_gun(self, gun_name):
        print("%s just bought %s" % (self.name,gun_name) )


r1 = Role('Chenronghua', 'police',  'AK47') # 把一个类变成一个具体对象的过程叫 实例化(初始化一个类,造了一个对象)

#私有方法
# r1.__shot()

print(r1.show_status())


r2 = Role('jack', 'terrorist', 'B22')  #生成一个角色
r2.got_shot()
print(r2.show_status())

r1.name = "陈荣华"
r1.n_list.append("from r1")
r1.bullet_prove = True

r1.n = "改类变量" #创建实例变量,未变动类变量
print("r1:",r1.weapon,r1.n )

# #删除类属性
# del r1.weapon
# del r1


print(r1.n,r1.name,r1.bullet_prove,r1.weapon)


r2 = Role('jack', 'terrorist', 'B22')  #生成一个角色
r2.name = "徐良伟"
r2.n_list.append("from r2")
print("r2:",r2.name,r2.n,r2.n_list)

# r2.got_shot() #Role.got_shot(r2)

#更改类变量
Role.n = "ABC"
print(Role.n_list)

print(r1.n ,r2.n )

posted @ 2021-06-06 11:41  flytoyou  阅读(19)  评论(0编辑  收藏  举报