【问题标题】:Python Error when setting self.var in __init__ [duplicate]在 __init__ 中设置 self.var 时出现 Python 错误 [重复]
【发布时间】:2020-05-16 05:07:26
【问题描述】:

我正在编写一个 Python 游戏,我的 Hero 课程是这样开始的:

class Hero():
    def __init__(self, name):
        self.class = ""
        while self.class not in ["mage", "fighter"]:
            print("What class are you?")
            self.class = input("Mage or Fighter: ").lower()
        self.name = name.title()
        self.level = 1
        self.enimieskilled = 0
        self.hp = self.level * 5
        self.attacks = spells[self.class]

我后来创建了一个英雄: player = Hero(input("What is your name? "))

但是当我运行这个程序时,我得到:

File "app.py", line 26
    self.class = ""
             ^
SyntaxError: invalid syntax

我尝试注释掉所有self.class,如下所示:

class Hero():
    def __init__(self, name):
        #self.class = ""
        #while self.class not in ["mage", "fighter"]:
        #    print("What class are you?")
        #    self.class = input("Mage or Fighter: ").lower()
        self.name = name.title()
        self.level = 1
        self.enimieskilled = 0
        self.hp = self.level * 5
        #self.attacks = spells[self.class]

它运行了!我已经检查过了,我所有的 paranthesies 都没有问题。 感谢您的帮助!

【问题讨论】:

  • class 是一个保留的 python 关键字,这就是它不起作用的原因:) 尝试使用 self.class_name 或其他东西
  • 不要在Hero.__init__里面做IO;名称和类都应该作为参数传递。

标签: python python-3.x class syntax-error


【解决方案1】:

class是保留字,属于语言,只能用于声明类。

【讨论】:

    【解决方案2】:

    class 是一个保留的 python 关键字,这就是它不起作用的原因 :) 尝试使用 self.class_name 或其他东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      相关资源
      最近更新 更多