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 )