在 Python 中返回函数后枚举停止计数

我的问题是我想return logout()在我的工作人员中调用 ,但这确实会破坏枚举并将idx计数器设置为 0,因此它不会打印item。如何在没有这个问题的情况下返回注销?


代码:


import time


def logout():

    print("logout")


N = 4

def worker():

    for idx, Item in enumerate(range(1, 12)):

        if idx % N == 0:

            print("Done Session") 

            time.sleep(1)

            return logout()

        print(Item)    


worker()

worker()

worker()

输出:


Done Session

logout

Done Session

logout

Done Session

logout

预期输出:


Done Session

logout

1

2

3

4

Done Session

logout

5

6

7

8

Done Session

logout

...


跃然一笑
浏览 89回答 2
2回答

元芳怎么了

您可以将必要的东西存储在列表中,然后一次将它们全部返回(注意:我注释了一些输出不需要的代码行):N = 4def worker():    log = [] # Not needed    for idx, Item in enumerate(range(1, 12)):        if idx % N == 0:            print("Done Session")             time.sleep(1)            log.append(logout()) # logout()        print(Item)    return log # Not needed结果:Done Sessionlogout1234Done Sessionlogout5678Done Sessionlogout91011Done Sessionlogout1234Done Sessionlogout5678Done Sessionlogout91011Done Sessionlogout1234Done Sessionlogout5678Done Sessionlogout91011

呼唤远方

这将起作用:N = 4def worker():    for idx, Item in enumerate(range(1, 12)):        if idx % N == 0:            print("Done Session")             time.sleep(1)            logout()        print(Item) 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python