Я пытаюсь создать объект, но код, который должен работать, не работает - PullRequest
0 голосов
/ 09 мая 2019

Все изучение Python, которое я проводил, показывает, что для создания нового объекта все, что мне нужно сделать, это определить переменную и сказать ей, какой это класс. В большинстве случаев, когда я делаю это, я получаю сообщение об ошибке. Чего мне не хватает?

В соответствии со всем, что я читал или смотрел на эту тему, приведенный ниже код должен работать для создания нового объекта Railroad. У меня есть класс в виде отдельного файла, который я затем включаю в основную программу. Единственный раз, когда я убедился, что это работает отлично, это когда я создал объект как часть списка, а не как отдельный объект.

class Railroad:
def __init__(self):
    self.name = "Railroad"
    self.repmks = "RRRR"


#include Railroad

def create_rr():
    rr = Railroad()
    rr.name = input("Railroad name: ")
    rr.repmks = input("Reporting marks: ")

Когда этот код запускается, я получаю ошибку трассировки, говорящую мне: «имя« Железная дорога »не определено». Разве я еще не определил это как класс?

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Спасибо Дэниелу, Бармару и Игорю - да, я перепутал свой C ++ с реальным синтаксисом Python и неправильно импортировал файлы.Отступ фактически не был проблемой;это было с отступом в моей программе, но не в примере кода.

0 голосов
/ 09 мая 2019

Вам не хватает отступа.Эта часть:

class Railroad:
def __init__(self):
    self.name = "Railroad"
    self.repmks = "RRRR"

должна быть:

class Railroad:
    def __init__(self):
        self.name = "Railroad"
        self.repmks = "RRRR"

Возможно, вам нужно вернуть переменную rr внутри вашей функции.Вот пример:

script1.py

class Railroad:
    def __init__(self):
        self.name = "Railroad"
        self.repmks = "RRRR"

script2.py

from script1 import Railroad

def create_rr():
    rr = Railroad()
    rr.name = input("Railroad name: ")
    rr.repmks = input("Reporting marks: ")
    return rr
test = create_rr()
print(test.name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...