Python创建FIT类实例时出现NameError问题求助
解决Python导入类时的NameError问题
嘿,别担心,这个小问题刚学Python面向对象的时候真的很容易踩坑!我来给你掰扯清楚:
你在manage文件里定义了FIT类,当你在主文件里写import manage的时候,Python只是把整个manage模块加载进来了,但FIT这个名字并没有直接暴露在当前脚本的全局命名空间里——它是属于manage模块的“内部名字”,所以你直接写FIT()的时候,Python找不到这个名字,就会抛出NameError啦。
给你两种简单的解决办法:
方法一:直接从模块导入目标类
把主文件的导入代码改成这样:
from manage import FIT FITobj = FIT()
这样就把FIT类直接导入到当前脚本的命名空间里,之后就能直接用FIT()实例化,调用FITobj.get_balance()也完全没问题。
方法二:通过模块名引用类
如果你不想单独导入类,也可以保留原来的import manage,但实例化的时候加上模块名前缀:
import manage FITobj = manage.FIT()
这种方式相当于明确告诉Python:“我要找的FIT类在manage模块里哦”,同样能解决问题。
要是之后你在manage里写了更多类,第一种方法可以按需导入你需要的类,第二种方法能避免不同模块的类名冲突,看你需求选就行~
内容的提问来源于stack exchange,提问作者Valerie Andy
相关产品推荐
相关产品推荐

