Python 2.7执行hello.py遇NameError:name 'hello'未定义求助
解决Python脚本执行的NameError问题
嘿,我来帮你搞定这个问题!先看你遇到的NameError: name 'hello' is not defined,大概率是执行命令的时候敲错了——比如你可能输入了python hello而不是python hello.py,系统找不到叫hello的命令/模块,就会报这个错。不过先把你的代码问题也一起修正,这样脚本才能正常运行。
你的代码里存在几个关键问题,我一步步给你说明:
代码里的问题点
- 你把
main方法定义在了Greeting类里,但没有遵循Python类方法的定义规则(类方法默认需要self参数,或者用静态方法装饰器标记),也没写正确的调用逻辑 if __name__ == "__main__"后面的代码不完整,没有触发执行逻辑- 导入了
sys但没用到argv,属于冗余代码(可以删掉,或者后续需要时再用)
修正后的代码方案
方案1:把main作为普通函数(更适合初学者的简单写法)
def main(): print("Good day") if __name__ == "__main__": main()
方案2:保留Greeting类,用静态方法实现
如果你想保留类的结构,可以给main方法加上@staticmethod装饰器,然后在主入口调用:
class Greeting: @staticmethod def main(): print("Good day") if __name__ == "__main__": Greeting.main()
执行注意事项
确保你在脚本所在的目录下,执行正确的命令:
python hello.py
(如果是Python3环境,可能需要用python3 hello.py)
这样修改后,脚本就能正常输出Good day,也不会再出现NameError啦!
内容的提问来源于stack exchange,提问作者Ityav
相关产品推荐
相关产品推荐

