【问题标题】:accessing dictionary elements in a child class [duplicate]访问子类中的字典元素[重复]
【发布时间】:2020-07-01 05:21:39
【问题描述】:

我正在尝试制作一个简单的游戏,我有一个 Character 类,它有如下所示的统计信息(字典)

class Character():
   def __init__(self, name):
     self.name = name
   stats = {
    
     "Health" : 100,
     "Attack" : 1,
     "Defence": 1 }

我有一个 Player 类,它有一个带有参数 self、attack、defend 和enemy 的攻击方法我尝试从我使用的统计数据中访问值

def attack(self, attack = self.stats.get("Attack") , defence= self.stats.get("Defence"), enemy):
    pass

但它说

非默认参数遵循默认参数

self 不是默认论点吗?我该如何解决? (我对 OOP 不太满意)

【问题讨论】:

  • 您的问题中没有关于 OOP 或字典的内容。 enemy 必须有一个默认值 - 或者在第二个位置。
  • @DYZ 我的编辑提示自己出错
  • 不要相信编辑器,相信错误信息。它会告诉您问题出在哪里以及如何解决。
  • 更有可能表明attack 出错。
  • @Putnam, attack 很好。 enemy 不是。

标签: python default-value


【解决方案1】:

“默认”参数是具有默认值的参数。在这种情况下,您的默认参数是attack = self.stats.get("Attack")defence= self.stats.get("Defence")。非默认参数不能放在默认参数之后——默认参数必须始终位于参数列表的末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2021-07-27
    相关资源
    最近更新 更多