我想停止对正在导入的模块进行评估,而不停止整个程序。
这是我要实现的示例:
main.py
print('main1') import testmodule print('main2')
testmodule.py
print(' module1') some_condition=True if some_condition: exit_from_module() # How to do this? print(' module2') # This line is not executed.
预期产量:
main1 module1 main2
没有停止模块执行的好方法。您可以引发一个异常,但是导入模块将需要处理它。也许只是这样重构:
print(' module1')
some_condition = True
if not some_condition:
print(' module2')
更新:最好将模块更改为仅定义函数和类,然后让调用者调用其中之一来执行所需的工作。
如果您真的想在导入期间完成所有这些工作(请记住,我认为最好不要这样做),则可以将模块更改为:
def _my_whole_freaking_module():
print(' module1')
some_condition = True
if some_condition:
return
print(' module2')
_my_whole_freaking_module()
问题内容: 我有一个简单的Python脚本,如果满足条件,我想停止执行。 例如: 本质上,我正在寻找一种与函数主体中的’return’关键字等效的行为,该关键字允许代码流退出该函数而不执行其余代码。 问题答案: 要退出脚本,您可以使用, 您还可以提供退出状态值,通常是整数。 以零退出,这通常被解释为成功。非零代码通常被视为错误。默认值为零退出。 打印“ aa!错误!” 并以状态代码1退出。 os模
问题内容: 我正在尝试用Python的日志记录模块替换临时日志记录系统。我正在使用日志记录系统在一行上输出长任务的进度信息,因此您可以在控制台中记录日志或查看它。我通过在日志记录功能上设置一个标志来完成此操作,该标志可禁止该日志消息的换行符并逐段构建该行。 所有日志记录都是从单个线程完成的,因此没有序列化问题。 使用Python的日志记录模块可以做到这一点吗?这是个好主意吗? 问题答案: 让我们从
问题内容: 我有一个名为的二进制文件,在被调用时会生成输出。如果我从Bash shell调用它,则大多数输出都被抑制。所有输出都被抑制 我有一个python脚本,需要调用。我希望能够从生成输出,同时抑制的所有输出。 从内,我已经试过,和,等,但这些都不抑制所有来自A的输出 我可以运行,但是那也抑制了所有的输出,我也不想这样做。 有人有建议吗? 问题答案: 如果您拥有Python 2.4,则可以
问题内容: 我正在使用python 2.7,我有一些看起来像这样的代码: 此处唯一的依赖项如下:dependent1需要等待任务1-3,Dependent2需要等待任务4-6,而dependent3需要等待依赖项1-2 …以下是可以的:首先运行全部6个任务并行,然后是前两个从属。 我希望尽可能多的任务并行运行,我已经在Google上搜索了一些模块,但是我希望避免使用外部库,并且不确定队列线程技术如
问题内容: 当前,我们通过在under属性中提及它们的版本和依赖项来在系统上设置\安装一些软件包。我们的系统需要Python 2.7。有时,用户在其系统上拥有多个版本的Python,例如2.6.x和2.7,它说的某些软件包已经可用,但实际上在系统上的2.6站点软件包列表下可用。还有一些用户只有2.6,如何从中强制实施,或者有其他方法可以说只有python 2.7,而我们要更新的所有软件包仅适用于2
问题内容: 由于某些原因,我必须运行一个php脚本才能从Python获取图像。因为php脚本很大,而且不是我的,所以我需要几天的时间才能找到所使用的正确算法并将其转换为python。 我想知道是否有任何方法可以运行带有少量参数的php脚本,以返回python中的图像。 问题答案: 示例代码:
本文向大家介绍在Python中自动执行PDF,包括了在Python中自动执行PDF的使用技巧和注意事项,需要的朋友参考一下 使用的模块: 在此脚本中,我们将使用PyPDF2模块,该模块将为我们提供各种功能,例如提取数据,读取pdf文件,拆分文件并写入新文件。 下载PyPDF2: 通用方式:pip安装PyPDF2 Pycharm用户:转到python项目解释器并从那里安装它。 PyPDF2提供的各种
问题内容: 我在Windows上工作。我想每10秒执行一次函数foo()。 我该怎么做呢? 问题答案: 在的末尾,创建一个在10秒后Timer调用自身的。 因为,Timer创建一个新的thread要调用。 你可以做其他事情而不会被阻止。