类的特性、公有私有属性和析构
发表于:2024-11-30 作者:热门IT资讯网编辑
编辑最后更新 2024年11月30日,```class Role(object): country="wuxi" #公有属性 def __init__(self, name, role, weapon, life_value
```class Role(object): country="wuxi" #公有属性 def __init__(self, name, role, weapon, life_value=100, money=15000): self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.money = money self.__eyes = 'good '#定义一个私有属性 def shot(self): print("shooting...") print(self.__eyes) def got_shot(self): print("ah...,I got shot...") self.__eyes="heat" print(self.__eyes) def ttt(self): return self.__eyes #让外面获取私有属性,只能看不能修改 def buy_gun(self, gun_name): print("%s just bought %s" % (self.name,gun_name)) self.weapon=gun_name #修改公有属性 def __del__(self): print("del.....run.....")r1 = Role('Alex', 'police', 'AK47') # 生成一个角色r2 = Role('Jack', 'terrorist', 'B22') #生成一个角色r2.buy_gun("核弹")print(r2.weapon)import timetime.sleep(5)## 调用方法修改过属性后再次调用属性将是被修改后的样子。(同一个实例)## 类里的方法私有化 def shot2(self): # 定义一个方法 print("It's my own!") r1.shot=shot2 # 把shut2传r1.shut r1.shot(r1)## 公有属性#country="wuxi" 在类里直接定义的属性即是公有属性#实例里自己重新定义公有属性就不会去找父类里的公有属性,要是实例里没有定义就会去父类里找。print(r1.country)print(r2.country)r1.country="suzhou"print(r1.country)print(r2.country)## 私有属性self.__eyes='good ' #定义一个私有属性print(r2.__eyes) #无法直接访问,直接查看。r2.got_shot() #只能内部访问print(r2.ttt()) #让外面获取私有属性,只能看不能修改print(r2._Role__eyes) #强制获取私有属性信息## 类的析构方法(在实例销毁的时候自动调用)def __del__(self): print("del.....run.....")