【问题标题】:Name Error when instantiating a class in Python在 Python 中实例化类时出现名称错误
【发布时间】:2015-10-18 23:53:15
【问题描述】:

好的,所以我正在尝试在 Python 中创建一个类,使用以下代码将参数分配给元素周期表的元素:

class Element:
    def __init__(self, Symbol, Name, Number, Row, Column):
        self.Symbol = Symbol
        self.Name = Name
        self.Number = Number
        self.Row = Row
        self.Column = Column

但是,当尝试创建类的实例时,

H = Element(H, hydrogen, 1, 1, 1)

我收到错误消息

NameError: name 'H' is not defined

我怀疑我错误地使用了__init__,如果是这样,如何纠正错误?感谢阅读。

【问题讨论】:

  • 第二个H是什么?也许是一个字符串? H = Element(H,hydrogen, 1, 1, 1) 在这里你试图创建一个对象并在创建中使用它自己。
  • 请考虑使用Style Guide for Python Code

标签: python class instance nameerror


【解决方案1】:

您要求 Python 将名为 Hhydrogen 的两个变量的值传递给 Element 构造函数:

Element(H, hydrogen, 1, 1, 1)
#       ^  ^^^^^^^^

这些变量没有定义。你的意思是传递字符串吗?如果是这样,请使用字符串文字语法(引号):

H = Element('H', 'hydrogen', 1, 1, 1)

您对__init__ 的使用没有问题。否则,抛出异常的回溯将表明该方法实际上已被调用,而不是指向调用Element() 的行。

【讨论】:

  • 哦,当然!多么愚蠢的错误>。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
  • 2019-12-31
相关资源
最近更新 更多