Название Error python, текстовая приключенческая игра

Так что у меня есть проблема, что я не совсем понимаю, почему это происходит. Я получаю (глобальная переменная «значение» ошибки имени не определена), когда она должна быть в моем классе оружия.

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

как видите, я сделал это здесь, и этот фрагмент кода работает, когда я вызываю игрока.


person Jotin2    schedule 16.11.2013    source источник
comment
Как вы думаете, откуда value в вашей линии super(weapons,self).__init__(name, value, quantity=1)? Возможно, value должно быть attack_damage?   -  person Floris    schedule 16.11.2013


Ответы (2)


Вам нужно добавить аргумент value в конструктор __init__ класса оружия.

person Ramchandra Apte    schedule 16.11.2013
comment
+1 за определение того, что value почти определено - я делал это на своем телефоне и этого не видел. - person Floris; 16.11.2013
comment
@Floris Я думаю, что мой ответ неверен; где определяется self.value? - person Ramchandra Apte; 16.11.2013
comment
В классе Item? Вот класс, от которого это оружие получает. - person Floris; 16.11.2013
comment
@Floris Да, но атрибут value будет установлен только в экземпляре Item, верно? - person Ramchandra Apte; 16.11.2013
comment
Я сделал self.value, но теперь он говорит, что у меня ошибка атрибута: объект оружия не имеет значения атрибута - person Jotin2; 16.11.2013

super нужен параметр value, но вы не передали его в инициализацию

person Floris    schedule 16.11.2013