Я изучаю python и пытаюсь написать систему раны на основе горячих зон персонажа. Вот что я написал. Не судите меня слишком.Python: переменные внутри методов класса
class Character:
def __init__ (self, agility, strength, coordination):
self.max_agility = 100
self.max_strength = 100
self.max_coordination = 100
self.agility = agility
self.strength = strength
self.coordination = coordination
def hit (self, hit_region, wound):
self.hit_region = hit_region
self.wound = wound
#Hit Zones
l_arm=[]
r_arm=[]
l_leg=[]
r_leg=[]
hit_region_list = [l_arm , r_arm, l_leg, r_leg]
#Wound Pretty Names
healthy = "Healthy"
skin_cut = "Skin Cut"
muscle_cut = "Muscle Cut"
bone_cut = "Exposed Bone"
hit_region.append(wound)
john = Character(34, 33, 33)
john.hit(l_arm, skin_cut)
Я бы ожидать для skin_cut входа, чтобы быть признанным в качестве «порезаться», а затем добавил к l_arm, который я определил как список. Тем не менее, я всегда получаю ошибку имени (l_arm не определен). Если я переписал метод с «раной» в качестве первого аргумента, то теперь «Ошибка имени» будет иметь «рану», как не определенную. Это говорит мне, что это что-то в структуре класса, который я пропустил, но я не могу сказать, что.
Локальные переменные, например. l_arm, уничтожаются, когда функция завершает выполнение. – 7stud
Не могли бы вы предоставить ошибку? – Nilesh
@ Лафада, это очевидно! – 7stud