python导入模块问题
我在其他py文件(没有导入time模块)定义了函数defget_time():current_time=time.ctime(time.time())returncurr...
我在其他py文件(没有导入time模块)定义了函数def get_time(): current_time = time.ctime(time.time()) return current_time在主py文件导入了这个py文件,并导入了time模块,运行此函数时为什么还提示time未定义。按理说模块导入一次就可以了吗?
展开
展开全部
其实很简单,这是命名空间的问题,每个模块或者一个包就是一个命名空间,每个都相对独立的,只有导入时才会有某种关系存在。
也就是说,如果你在connect.py文件里没有导入time模块,使用的话本来就会提示time没有定义(因为你事先没有导入嘛)。然后当程序运行时,会优先把模块和定义的函数先走一遍存在缓存里(你可以理解为检测一篇),然后再按照代码顺序由上而下运行。所以当程序优先运行模块和定义的函数时,发现你的connect.py报错,那么后面与这个函数或者模块相关的代码都不会再继续运行。
所以你在connect.py的文件里import time,而主py文件不需要导入time模块就行。
也就是说,如果你在connect.py文件里没有导入time模块,使用的话本来就会提示time没有定义(因为你事先没有导入嘛)。然后当程序运行时,会优先把模块和定义的函数先走一遍存在缓存里(你可以理解为检测一篇),然后再按照代码顺序由上而下运行。所以当程序优先运行模块和定义的函数时,发现你的connect.py报错,那么后面与这个函数或者模块相关的代码都不会再继续运行。
所以你在connect.py的文件里import time,而主py文件不需要导入time模块就行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询