热门IT资讯网

类的特性、公有私有属性和析构

发表于: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.....")
0