python - 在Python中出现异常后将项目返回到for循环中
问题描述
que = []
def worker(x):
for idx, Item in enumerate(range(1, 3)):
try:
#Do Stuff
print("Fin", Item, "For Worker", x)
except Item > 2:
que.append(Item)
pass
worker(1)
worker(2)
我的问题是我不知道如何告诉 for 函数在有一些项目que
时也为项目做 try 部分。所以它会看到Item 3
在 open in que 中,切换到worker 2
并从那里再次尝试。
当前输出如下所示:
Fin 1 For Worker 1
Fin 2 For Worker 1
Fin 1 For Worker 2
Fin 2 For Worker 2
预期输出应如下所示:
Fin 1 For Worker 1
Fin 2 For Worker 1
Fin 3 For Worker 2
解决方案
你告诉你的第二个工人做和第一个工人完全相同的事情。相反,您需要第二个函数来迭代que
.
def worker_repeat(x):
for Item in que:
try:
#Do Stuff
print("Fin", Item, "For Worker", x)
except:
print("Failed again", Item, "For Worker", x)
pass
请注意,您在que
这里依赖于成为全局变量,这通常是不好的做法。
推荐阅读
- karate - 如何在 Test Suite Setup/Teardown 上执行某些操作?
- android - 尝试从 Android Studio 运行应用程序时出现“未知来源”错误
- linux - 如何将多个 png 转换为一个 DICOM?图像魔术师?
- javascript - truncation of text and 'show more' text
- javascript - 使用 jQuery 查找 HTML 元素 IMG(如果存在)?
- c++ - C++ 枚举模板函数:编译时反射
- flutter - 如何解决异常:Gradle 任务 assembleDebug 失败,退出代码为 1
- java - 线程“主”java.lang.VerifyError 中的异常:JVMVRFY012 堆栈形状不一致;类=org/bouncycastle/openssl/PEMReader$ECDSAKeyPairParser,
- postgresql - 表相互引用解决方法
- wso2 - 无法在 wso2 分析仪表板中看到任何统计信息,例如“注册的应用程序用户”