我正在尝试创建一个对象,但是应该正常工作的代码却无法正常工作

时间:2019-05-09 12:00:02

标签: python class object

我一直在做的所有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: ")

此代码运行时,出现回溯错误,告诉我“未定义名称'Railroad'。”我不是已经将其定义为课程吗?

2 个答案:

答案 0 :(得分:0)

您缺少缩进​​。 这部分:

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)

答案 1 :(得分:0)

谢谢Daniel,Barmar和Igor-是的,我将C ++混入了实际的Python语法,并且没有正确导入文件。缩进实际上不是问题;它在我的程序中缩进,但在示例代码中没有缩进。