小编Tom*_*hal的帖子

嵌套模块上的UnboundLocalError重新导入

当我在python 2.7中重新导入已导入的模块时,我得到一个UnboundLocalError.一个最小的例子是

#!/usr/bin/python

import sys

def foo():
    print sys
    import sys

foo()

Traceback (most recent call last):
  File "./ptest.py", line 9, in <module>
    foo()
  File "./ptest.py", line 6, in foo
    print sys
UnboundLocalError: local variable 'sys' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

但是,当嵌套导入作为函数定义中的第一个语句放置时,一切正常:

#!/usr/bin/python

import sys

def foo():
    import sys
    print sys

foo()

<module 'sys' (built-in)>
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么第一个脚本失败了吗?谢谢.

python

6
推荐指数
1
解决办法
102
查看次数

标签 统计

python ×1