属性在运行时期间未知,但在pdb调试期间可识别

时间:2013-06-28 22:59:46

标签: python pdb

查看以下代码。

我在if语句中收到UnboundLocalError: "local variable 'os' referenced before assignment"错误。

我在那里设置了一个pdb跟踪,我试图查看os模块。

import os
import pdb

... 

pdb.set_trace()

if not os.path.exists(path_to_temp):
    os.makedirs(path_to_temp)

这是我在pdb中的奇怪互动:

(Pdb) os.path.exists(path_to_temp)
False
(Pdb)  not os.path.exists(path_to_temp)
True
(Pdb) os.path
<module 'posixpath' from '/usr/lib/python2.7/posixpath.pyc'>
(Pdb) os
<module 'os' from '/usr/lib/python2.7/os.pyc'>
(Pdb) n
UnboundLocalError: "local variable 'os' referenced before assignment"

我甚至不......

编辑:哦,惭愧我。在这个if语句之后,我有一个本地import os !!

1 个答案:

答案 0 :(得分:2)

原来我在这个if语句之后有一个本地import os,这影响了该函数范围的os属性。