Так что у меня есть проблема, что я не совсем понимаю, почему это происходит. Я получаю (глобальная переменная «значение» ошибки имени не определена), когда она должна быть в моем классе оружия.
from items import *
class weapons(Item):
def __init__(self, name, attack_damage, lifesteal = 0):
super(weapons,self).__init__(name, value, quantity=1)
self.attack_damage = attack_damage
self.lifesteal = lifesteal
Вот класс, из которого оружие получает это, уже имеет определенную ценность.
class Item(object):
def __init__(self, name, value, quantity=1):
self.name = name
self.raw = name.replace(" ","").lower()
self.quantity = quantity
self.value = value
self.netValue = quantity * value
def recalc(self):
self.netValue = self.quantity * self.value
У меня уже есть кусок кода, похожий на этот, который работает, но по какой-то причине происходит ошибка этого значения. Я просто включу это.
from character import*
class player(character):
def __init__(self,name,hp,maxhp,attack_damage,ability_power):
super(player,self).__init__(name, hp, maxhp)
self.attack_damage = attack_damage
self.ability_power = ability_power
и класс, из которого игрок получает свои вещи
class character(object):
def __init__(self,name,hp,maxhp):
self.name = name
self.hp = hp
self.maxhp = maxhp
def attack(self,other):
pass
как видите, я сделал это здесь, и этот фрагмент кода работает, когда я вызываю игрока.
value
в вашей линииsuper(weapons,self).__init__(name, value, quantity=1)
? Возможно,value
должно бытьattack_damage
? - person Floris   schedule 16.11.2013