Python __init__()缺少1个必需的位置参数
我对Python非常陌生,我正在制作一个游戏,并为项目使用类。运行此命令时,错误代码为: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) 我希望能够使用对象来保存不同项目的信息,并为用户打印出来 超类: _
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
)
...