2015-07-28 2 views
-1

Ладно, так что я пытаюсь создать класс в Python, который присваивает параметры элементов периодической таблицы, используя следующий код:Name Error при создании экземпляра класса в 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 

I Подозреваю, что неправильно использую __init__, и если да, как можно исправить ошибку? Спасибо за прочтение.

+1

Что такое второй H? Может, струна? H = Element (H, hydrogen, 1, 1, 1) здесь вы пытаетесь создать объект и использовать его в создании. – rmcc

+1

Обратите внимание на использование [Руководство по стилю для кода Python] (https://www.python.org/dev/peps/pep-0008/). – Matthias

ответ

3

Вы просите Python пройти в значениях двух переменных, названных H и hydrogen, в Element конструктор:

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

Эти переменные не определены. Возможно, вы имели в виду переходить в строки? Если это так, используйте строковый литерал синтаксис (цитаты):

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

Использование __init__ иначе штраф. Отслеживание выведенного исключения в противном случае показало бы, что метод действительно был вызван, и не указывает на линию, вызывающую Element().

+0

О, конечно! Какая глупая ошибка. <Спасибо, что заметили! – nekomeido

 Смежные вопросы

  • Нет связанных вопросов^_^