我有几个python脚本。需要第一个脚本来存储对象创建的逻辑,其余脚本从第一个脚本导入对象并使用它。我的麻烦在于第一个脚本:首先检查对应的pickle文件是否存在,如果存在,脚本从pickle文件加载对象并停止执行。那么如何在不终止python iterpretator的情况下停止执行第一个脚本呢?
第一个脚本(将其命名为create_main_object.py)如下所示:
import pickle
import os
with open('main_object', 'rb') as input1:
main_object = pickle.load(input1)
exit() #this currently terminate interpretator
....
###logic for creation main_object
...
with open('main_object', 'wb') as output:
pickle.dump(main_object, output, pickle.HIGHEST_PROTOCOL)
另一个脚本导入main_object:
from create_main_object import main_object
答案 0 :(得分:2)
您应该整理模块,并将不同的操作放在不同的功能中。
如果你有一个创建对象的动作,比如main_object
,那么将该逻辑封装在一个函数中:
def main_object_factory():
with open('main_object', 'rb') as input1:
return pickle.load(input1)
然后,从您的模块中导入该特定功能:
from create_main_object import main_object_factory
有关您的信息,请将其称为factory pattern。