NameError:未定义类名

时间:2017-05-01 07:49:10

标签: python

我无法找到为什么这段代码无法工作:

class Agent:
def hello(self, first_name):
    return "Bien le bonjour" + first_name + "!"
agent = Agent()
print(agent.hello("Félix"))

我非常肯定会在python3下运行它,因为我只是按照教程:https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming-environment-on-ubuntu-16-04 关于如何为python3创建本地环境。

返回class Agent: File "la_poo_avec_python-00_setup/model.py", line 4, in Agent agent = Agent() NameError: name 'Agent' is not defined (my_env) noob@Flex:~/Noobi/prog/python3env/my_env$

3 个答案:

答案 0 :(得分:0)

该类需要__init__方法。如其他答案所示,修复缩进并执行以下操作:

class Agent:
    def __init__(self):
        pass

    def hello(self, first_name):
        return "Bien le bonjour" + first_name + "!"

答案 1 :(得分:-1)

您的代码是正确的,但我怀疑缩进有问题。这是应该如何

class Agent:
    def hello(self, first_name):
        return "Bien le bonjour" + first_name + "!"
agent = Agent()
print(agent.hello("Félix"))

答案 2 :(得分:-1)

您使用的语法听起来正确,但是您需要进行一些更正:

  • 您需要按如下方式将您的类与主代码分开,因为解释器认为第4行及其后的内容属于您的类:
class Agent:
    def hello(self, first_name):
        return "Bien le bonjour" + first_name + "!"

agent = Agent()
print(agent.hello("Felix"))
  • 您可能必须在“ Felix”中将“ l'accent aigu”替换为“ e”,因为它可能反映出有关在代码中使用“非ASCII”字符的错误。
  • 缩进是我从您的代码中得到的另一个错误。因此,在运行之前,请确保其组织正确。