回复:导入的模块不再可用

杰夫·戴克(Jeff Dyke)写道:
那么该处理如何使用" mymodulename"名称?
呼叫方法与认为是
该方法中的局部变量,因此仅表示
全球范围确实可以使用名称.
更有可能表明您删除了导致Python的线
将该名称视为局部变量.
即使阅读了页面后,我也指出了您?
导入绑定一个名称,因此函数内部的导入语句将导致
Python将该名称视为局部变量(除非您添加全局
声明该功能).
也许一些例子会使这个更清楚.以下片段是
完整程序:
摘要1:
导入模块#将模块添加到全局名称空间
def func():
Module.func()#使用全局名称空间中的模块
func()#这里没有错误
摘要2:
def func():
导入模块#将模块添加到 *本地 *名称空间
module.func()
func()#这里没有错误
Module.func()#不起作用;全局名称空间中没有模块
摘要3:
def func():
全局模块#标记模块为全局名称
导入模块#将模块添加到 *全局 *名称空间
module.func()
func()#这里没有错误
Module.func()#这里无错误;通过函数设置的全局模块
摘要4:
导入模块#将模块添加到全局名称空间
def func():
导入模块#也将模块添加到本地名称空间
打印模块#打印本地变量
模块=无#设置本地变量为无
func()#这里没有错误
Module.func()#这里也没有错误;使用全局名称空间
摘要5:
导入模块
def func():
打印模块#通过Unboundlocalerror失败.
#很多线
导入模块#添加到本地名称空间;将名称标记为本地
#更多代码
func()#将在打印语句中失败
我的猜测是最后一个片段与您的情况相对应.

标签: python

添加新评论