我在python包中看到一个奇怪的“未绑定本地”错误,似乎违反所有逻辑。我不能让MWE重现它,但会试图简洁地解释,并希望有人能够提供一些解释。导入的模块超出范围(未绑定的本地错误)
为了这个例子module
是我开发的包,Model
是module
中的一个类。在Model
类(model.py)的定义是这样的:
import module
class Model:
def __init__(self):
print module
def run(self):
print module
现在,当我在这样的脚本实例化一个Model
:在__init__
内
from model import Model
m = Model()
m.run()
module
成功打印,但我在run
函数中获得未绑定的本地错误。
我试图用PDB,这就是事情变得很奇怪诊断这一点,因为如果我添加一个PDB跟踪前夕在run()
功能print module
线,那么我可以成功运行print module
没有绑定本地错误,但如果我走到下一行,则会抛出错误。 module
如何在__init__()
的范围内,并在pdb的范围内,但不在run()
的范围内?
我知道这是不理想的,因为没有MWE,但我似乎无法在完整代码的上下文之外重现此内容。我希望有人能够了解可能发生的事情并提出一些进一步调试的策略。
你能给我们完整的堆栈跟踪吗?这将有助于诊断,以确保它是一个你认为它是未绑定的本地。 – Delioth