子类问题、意外参数和未解决的引用
Problems with subclasses, unexpected arguments and unsolved references
所以我正在尝试制作一个无尽的文字冒险游戏(使用 this 网站的帮助),但我的 classes:
遇到了一些问题
class Item:
def __init__(self, name, desc, usable, value):
self.name = name
self.desc = desc
self.usable = usable
self.value = value
def __str__(self):
return "{}\n=====\n{}\nValue: {}\n".format(self.name, self.desc, self.usable, self.value)
class Weapon(Item):
def __init__(self, damage):
self.damage = damage
super().__init__(desc, name, usable, value)
def __str__(self):
return "{}\n=====\n{}\nValue: {}\nDamage: {}".format(self.name, self.damage, self.desc, self.usable, self.value)
class BrokenSword(Weapon):
def __init__(self):
super(Weapon, self).__init__(name="Broken Sword",
desc="A sword that didn't resist time.",
value=1,
usable=0,
damage=1)
PyCharm 声明 Weapon
class(在 super().__init__()
内)中的 desc, name, usable
和 value
是未解决的引用,并且它们BrokenSword(Weapon)
class 中的意外参数。该代码与教程非常相似,那么它有什么问题呢?教程是用python2.x写的吗?我该如何修复我的代码?
Weapon
class 不知道那些参数是什么。您必须在本地或 -god forbid- 全局定义它们。所以 Weapon.__init__
应该接受参数:
class Weapon(Item):
def __init__(self, desc, name, usable, value, damage):
super().__init__(
desc=desc,
name=name,
usable=usable,
value=value
)
self.damage = damage
所以我正在尝试制作一个无尽的文字冒险游戏(使用 this 网站的帮助),但我的 classes:
遇到了一些问题class Item:
def __init__(self, name, desc, usable, value):
self.name = name
self.desc = desc
self.usable = usable
self.value = value
def __str__(self):
return "{}\n=====\n{}\nValue: {}\n".format(self.name, self.desc, self.usable, self.value)
class Weapon(Item):
def __init__(self, damage):
self.damage = damage
super().__init__(desc, name, usable, value)
def __str__(self):
return "{}\n=====\n{}\nValue: {}\nDamage: {}".format(self.name, self.damage, self.desc, self.usable, self.value)
class BrokenSword(Weapon):
def __init__(self):
super(Weapon, self).__init__(name="Broken Sword",
desc="A sword that didn't resist time.",
value=1,
usable=0,
damage=1)
PyCharm 声明 Weapon
class(在 super().__init__()
内)中的 desc, name, usable
和 value
是未解决的引用,并且它们BrokenSword(Weapon)
class 中的意外参数。该代码与教程非常相似,那么它有什么问题呢?教程是用python2.x写的吗?我该如何修复我的代码?
Weapon
class 不知道那些参数是什么。您必须在本地或 -god forbid- 全局定义它们。所以 Weapon.__init__
应该接受参数:
class Weapon(Item):
def __init__(self, desc, name, usable, value, damage):
super().__init__(
desc=desc,
name=name,
usable=usable,
value=value
)
self.damage = damage