Python __init__()缺少1个必需的位置参数

Python __init__()缺少1个必需的位置参数,python,initialization,Python,Initialization,我对Python非常陌生,我正在制作一个游戏,并为项目使用类。运行此命令时,错误代码为: class Blaster(Weapon): def __init__(self, Range, accuracy): self.accuracy = accuracy self.Range = Range super() blaster = Blaster(Weapon) 我希望能够使用对象来保存不同项目的信息,并为用户打印出来 超类: _

我对Python非常陌生,我正在制作一个游戏,并为项目使用类。运行此命令时,错误代码为:

    class Blaster(Weapon):
    def __init__(self, Range, accuracy):
        self.accuracy = accuracy
        self.Range = Range
        super()
blaster = Blaster(Weapon)
我希望能够使用对象来保存不同项目的信息,并为用户打印出来

超类:

__init__() missing 1 required positional argument: 'accuracy'

创建类实例时,您需要提供
\uuuu init\uuu
函数的参数(除了
self
):

class Item():
def __init__(self, name, description, value):
    self.name = name
    self.description = description
    self.value = value

class Weapon(Item):
    def __init__(self, damage, speed):
        self.damage = damage
        self.speed = speed
        super()
当然你也可以这样做,我用变量来说明这些值的含义

class Blaster():
    def __init__(self, Range, accuracy):
        self.accuracy = accuracy
        self.Range = Range

blaster_range = 50
blaster_accunary = 0.5
blaster = Blaster(blaster_range, blaster_accunary)
对于继承,您需要像下面这样向下传递所有参数():

如果所有爆炸机都有固定的(例如)伤害和速度,那么你可以这样做

class Item():
    def __init__(self, name, description, value):
        self.name = name
        self.description = description
        self.value = value

class Weapon(Item):
    def __init__(self, name, description, value, damage, speed):
        self.damage = damage
        self.speed = speed
        Item.__init__(self, name, description, value)

class Blaster(Weapon):
    def __init__(self, name, description, value, damage, speed, Range, accuracy):
        self.accuracy = accuracy
        self.Range = Range
        Weapon.__init__(self, name, description, value, damage, speed)

blaster = Blaster(
    name="MyBlaster",
    description="A huge weapon",
    value=10,
    damage=20,
    speed=30,
    Range=50,
    accuracy=0.5
)
print(blaster.name)
print(blaster.description)
print(blaster.value)
print(blaster.damage)
print(blaster.speed)
print(blaster.Range)
print(blaster.accuracy)
class Item():
    def __init__(self, name, description, value):
        self.name = name
        self.description = description
        self.value = value

class Weapon(Item):
    def __init__(self, name, description, value, damage, speed):
        self.damage = damage
        self.speed = speed
        Item.__init__(self, name, description, value)

class Blaster(Weapon):
    def __init__(self, name, description, value, damage, speed, Range, accuracy):
        self.accuracy = accuracy
        self.Range = Range
        Weapon.__init__(self, name, description, value, damage, speed)

blaster = Blaster(
    name="MyBlaster",
    description="A huge weapon",
    value=10,
    damage=20,
    speed=30,
    Range=50,
    accuracy=0.5
)
print(blaster.name)
print(blaster.description)
print(blaster.value)
print(blaster.damage)
print(blaster.speed)
print(blaster.Range)
print(blaster.accuracy)
...

class Weapon(Item):
    def __init__(self, name, description, value, damage, speed):
        self.damage = damage
        self.speed = speed
        Item.__init__(self, name, description, value)

class Blaster(Weapon):
    def __init__(self, name, description, value, Range, accuracy):
        self.accuracy = accuracy
        self.Range = Range

        blasters_damage = 20
        blasters_speed = 30
        Weapon.__init__(self, name, description, value, blasters_damage , blasters_speed)

blaster = Blaster(
    name="MyBlaster",
    description="A huge weapon",
    value=10,
    Range=50,
    accuracy=0.5
)

...