類的特性、公有私有屬性和析構
阿新 • • 發佈:2018-10-02
修改 err 訪問 裏的 不能 重新定義 money alex 直接 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 ‘#定義一個私有屬性
#print(r2._Role__eyes) #強制獲取私有屬性信息
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 time
time.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()) #讓外面獲取私有屬性,只能看不能修改
類的析構方法(在實例銷毀的時候自動調用)
def del(self):
print("del.....run.....")
類的特性、公有私有屬性和析構