Python创建Railroad对象报错‘name 'Railroad' is not defined’求助
问题排查:'Railroad' is not defined 错误解决
嘿,这个问题其实很常见——你不小心用了C语言的语法来导入模块啦!Python里根本不认识#include这个指令,这就是为什么解释器找不到Railroad类的原因。
核心问题分析
你写的#include Railroad是C/C++里的头文件包含语法,但Python有自己的模块导入规则。当你把Railroad类放在单独文件里时,需要用Python的import语句来引入它,而不是#include。
解决步骤
假设你的Railroad类所在的文件名叫railroad.py(Python文件名建议小写,避免和内置模块冲突),内容如下:
class Railroad: def __init__(self): self.name = "Railroad" self.repmks = "RRRR"
那主程序里的导入方式应该改成下面两种之一:
方式1:直接导入类
# 从railroad模块中导入Railroad类 from railroad import Railroad def create_rr(): rr = Railroad() rr.name = input("Railroad name: ") rr.repmks = input("Reporting marks: ") return rr # 可选:返回对象方便后续使用
方式2:导入整个模块,通过模块名引用类
# 导入整个railroad模块 import railroad def create_rr(): # 通过模块名.类名的方式创建对象 rr = railroad.Railroad() rr.name = input("Railroad name: ") rr.repmks = input("Reporting marks: ") return rr
额外注意事项
- 确保
railroad.py和主程序文件在同一个文件夹里,不然需要调整导入路径(比如添加sys.path) - 文件名不要和Python内置模块重名(比如不要叫
math.py、sys.py),否则会覆盖内置模块导致奇怪的错误 - 你之前说“仅在列表中创建该对象时成功过”,大概率是当时你把
Railroad类的定义和主代码放在了同一个文件里,或者偶然用对了导入方式,所以没有报错。
内容的提问来源于stack exchange,提问作者Alan
相关产品推荐
相关产品推荐

