-1

我有几个脚本(名为 one.py 和 two.py)使用 execfile 循环调用对方。one.py(这是开始的)有一些我只想执行一次的代码(初始化)。

如果可能,我想继续使用 execfile

我怎么能做到这一点?

#one.py
def initialize():         
    # initializing

initialize()

# do the main work

execfile('two.py')

----------------------------

#two.py

# do some work

execfile('one.py')
4

2 回答 2

2

为什么不创建第三个文件 zero.py,它开始初始化,然后执行 one.py,然后执行循环。

 #zero.py
 def initialize():
# do some initializing

initialize()

execfile('one.py')

另一方面,应该有更好的方法来运行你的代码,然后是这个 execfile 循环。

于 2016-02-06T22:18:55.203 回答
0

也许您可以定义一个运行您的任务的类?

例如,类似:

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

----------------------------
于 2016-02-06T22:27:39.917 回答