我希望你能帮助找到解决这个“谜团”的方法。
所以我有一个 python 模块,在一个类中我创建了一个使用 dill.dump 和 dill.load_session 的方法。我在模块内部调用这个方法,它工作正常。但是我有另一个模块,另一个类,我从第一个模块导入对象并尝试在这个类中调用该方法,而 dill 没有任何反应,无法正常工作。这是一个快速的代码示例:
模块 A.py
import dill
class A(object):
def __init__(self): pass
def check():
temp_file = 'file.pkl'
dill.load_session(temp_file)
variable_current = 10
if variable_current != variable_from_temp_file:
variable_from_temp_file = variable_current
with open(temp_file,'wb') as pickle_file:
dill.dump(variable_from_temp_file,pickle_file)
return 1
模块 B.py
import A
obj = A()
class B(object):
def __init__(self): pass
def create():
flag = obj.check()
if flag:
do something...
object = B()
object.create()
当我运行 B.py 时,它会引发以下错误:
NameError: name 'variable_from_temp_file' is not defined
这种行为有什么解决办法吗?谢谢