例如,假设我有一些永远不会留下循环的字符串,而是一个全局需要的数字计数器。而不是......
outside_int = 0
def string_Grabber(stuff):
my_string = ''
my_number = 0
for i in range(who_cares):
#stuff that concatenates my_string
if this_happens():
my_number += 1
return my_string, my_number
for things in another_loop:
loop_string = string_Grabber(things)[0]
outside_int += string_Grabber(things)[1]
...有没有办法在一行中完成它,所以我不必两次调用(可能很昂贵的)函数?像:
loop_string, outside_int = stringGrabber(things)(0, += 1)
答案 0 :(得分:4)
没有办法在一行中完成。 你可以在函数内完成:
def string_Grabber(stuff):
my_string = ''
my_number = 0
for i in range(who_cares):
#stuff that concatenates my_string
if this_happens():
my_number += 1
return my_string, my_number + outside_int
答案 1 :(得分:1)
我有一个快速解决方案,您可以添加一个临时变量来捕获整数,然后将其添加到全局值,如下所示。
outside_int = 0
def string_Grabber(stuff):
return 'string',1
for things in range(2):
strring, tmp = string_Grabber('sample')
outside_int +=tmp
print(outside_int)
返回输出
1
2