[英]How to change instance variable when another related instance variable is changed in a class?
我最近嘗試編寫基於文本的游戲。 我想在玩家升級時更改玩家熟練度。 我應該如何更改我的代碼?
class Player:
def __init__(self,name,_class,_race):
self.name = name
self.level = 1
self.proficiency = (int(self.level/3)+1)*2
self.inventory = 0
self.skills = returnSkills()
self.stats = returnStats()
self._class = _class
self._race = _race
self.exp = 0
def levelUp(self):
self.level+=1
newPlayer = Player("Player","Barbarian","Human")
print(newPlayer.level)
for i in range(10):
print(newPlayer.level)
print(newPlayer.proficiency)
newPlayer.levelUp()
可以直接在levelUp()
function中重新計算proficiency
屬性。 一旦你更新了level
屬性,這個新的level
值將用於計算新的proficiency
。
def levelUp(self):
self.level+=1
self.proficiency = (int(self.level/3)+1)*2
您可以將proficiency
屬性,因此每次引用它時都會從當前級別計算它。
class Player:
def __init__(self,name,_class,_race):
self.name = name
self.level = 1
self.inventory = 0
self.skills = returnSkills()
self.stats = returnStats()
self._class = _class
self._race = _race
self.exp = 0
@property
def proficiency(self):
return (int(self.level/3)+1)*2
...
或者您可以將其保留為普通屬性,並在您的levelUp
方法中重新計算它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.