Python 只初始化一次
我有几个脚本(名为one.py和two.py)使用execfile循环调用彼此。py(要启动的)有一些代码(初始化),我只想执行一次 如果可能,我想继续使用execfile 我怎样才能做到这一点Python 只初始化一次,python,execfile,Python,Execfile,我有几个脚本(名为one.py和two.py)使用execfile循环调用彼此。py(要启动的)有一些代码(初始化),我只想执行一次 如果可能,我想继续使用execfile 我怎样才能做到这一点 #one.py def initialize(): # initializing initialize() # do the main work execfile('two.py') ---------------------------- #two.py # do
#one.py
def initialize():
# initializing
initialize()
# do the main work
execfile('two.py')
----------------------------
#two.py
# do some work
execfile('one.py')
为什么不创建第三个文件zero.py,它开始初始化,然后执行一个.py,然后执行循环
#zero.py
def initialize():
# do some initializing
initialize()
execfile('one.py')
另一方面,应该有更好的方法来运行代码,而不是这个execfile循环。也许您可以定义一个运行任务的类 例如,类似于:
from itertools import cycle
class TaskRunner(object):
def __init__(self):
self.tasks = ('one.py', 'two.py')
# do some initializing
def run_continuously(self):
for filepath in cycle(self.tasks):
execfile(filepath)
# to run:
task_runner = TaskRunner()
tsak_runner.run()
----------------------------
#one.py
# do the main work (without initializing)
----------------------------
#two.py
# do some work
----------------------------
将代码从one.py移到execfile中。
def(初始化):
应该是def initialize():
?创建第三个进行初始化并调用two.py的文件,或者使用存储状态为“已初始化”或“未初始化”的存储(例如数据库、临时文件)。为什么要使用?很遗憾,initialize函数调用了其他函数,并使用了one.py中的变量。能否将one.py导入zero.py中,然后使用这些变量和函数?然后创建一个临时文件并将状态保存在那里。