我有一个带有两种方法的对象。一种方法包括一堆嵌套的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打印语句-事实并非如此。
我真的被困住了,...也许是由于外面温暖的小麦。
有人可能有个主意吗?
答案 0 :(得分:0)
在最后一行中,您正在打印变量1和变量2的初始值 您需要将返回值存储在变量中: 返回值= instance.method(foo,variable1,variable2) 然后必须打印变量(returnedValue)。