gpt4 book ai didi

python - 如何编写可以临时运行但也可以由主脚本调用的导入函数?

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:13 24 4
gpt4 key购买 nike

假设我有一个通过 cronjob 每周运行的主脚本。该脚本从其他 Python 文件导入一堆不同的函数并按顺序运行它们的函数。我还希望能够运行主脚本运行的几个功能,但可以从终端临时运行。构建主脚本和包含要运行的函数的单个文件的最佳方法是什么?当前情况示例:

ma​​ster_script.py

import do_bulk_things as b
import do_another_thing as a

b.do_first_bulk_thing()
b.do_second_bulk_thing()
if b.do_third_bulk_thing():
a.my_other_thing()

do_bulk_thinkgs.py

def  do_first_bulk_thing():
# Code

def do_second_bulk_thing():
# Code

def do_third_bulk_thing():
# Code
if successful:
return True

do_another_thing.py

def my_other_thing():
# Code

如果我想运行my_other_thing()而不运行整个ma​​ster_script.py,我应该如何以及在哪里定义和调用所有内容?导入的文件只有函数定义,因此我实际上无法通过运行 python do_another_thing.py 来执行任何函数;而且我也不应该在 do_another_thing.py 中执行函数 my_other_thing(),因为这样它将在导入时运行。在我看来,我需要重组事物,但我需要一些最佳实践。

最佳答案

some more research 之后尝试回答我自己的问题,然后 lead me here 。执行 do_bulk_thinks.pydo_another_thing.py 中定义和导入的函数,但在导入时使用 __main__ 停止函数运行。因此 ma​​ster_script.py 保持不变,但其他文件将具有:

do_bulk_things.py

def  do_first_bulk_thing():
# Code

def do_second_bulk_thing():
# Code

def do_third_bulk_thing():
# Code
if successful:
return True

if __name__ == '__main__':
do_first_bulk_thing()
do_second_bulk_thing()
do_third_bulk_thing()

do_another_thing.py

def my_other_thing():
# Code

if __name__ == '__main__':
my_other_thing()

关于python - 如何编写可以临时运行但也可以由主脚本调用的导入函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23145722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com