Python:如何将返回值从外部方法传递给for循环? (增量)

时间:2019-06-02 11:17:29

标签: python for-loop methods return

我有一个带有两种方法的对象。一种方法包括一堆嵌套的if语句,我想为其返回某些值。 在外部.py文件的for循环内调用该方法。问题是,返回值永远不会到达外部文件中,因此我无法使用返回值。

for循环以及方法调用都在celery任务内,因为这是Web应用程序上一个长期运行的任务(烧瓶)

tasks.py

@celery.task 
def LongRunningTask(foo, bar, ...):
    instance = Object(foo, bar, ...)

    list_containing_elems = [....]

    variable1 = 0
    variable2 = 0 

    for elem in list_containing_elems:
        instance.method(foo, variable1, variable2)
        print(f"Here should the returned {variable1} and {variable2} be displayed")

object.py


class Object():

    def __init__(self, ...):
        [...]

    def method(self, foo, variable1, variable2):

        [...]

        if statement1:
            [...]

            if statement2:
                [...]

                if statement3:
                     [...]
                     variable1 += 1
                     return variable1

                else:
                     [...]
                     variable2 += 1
                     return variable2
            else:
                [...]
        else:
            [...]

我希望返回的(和增加的)变量将传递给task.py打印语句-事实并非如此。

我真的被困住了,...也许是由于外面温暖的小麦。

有人可能有个主意吗?

1 个答案:

答案 0 :(得分:0)

在最后一行中,您正在打印变量1和变量2的初始值 您需要将返回值存储在变量中: 返回值= instance.method(foo,variable1,variable2) 然后必须打印变量(returnedValue)。