函数更改后如何保存和分配函数返回值?



我正试图将函数的返回保存为全局变量,以便以后可以使用返回值。然而,由于我必须使用函数的多个返回值,我需要多次更改函数输入。因此,函数的返回也在这个过程中发生了变化,我无法将原始函数的返回保存在全局变量中。

例如,从一个名为"a"的函数中,第一次返回值"x"。然后,我试图将值"x"保存在一个名为"m"的全局变量中。之后,我更改了函数"A"的输入,以返回该函数的另一个值"y"。然而,在这个过程中,分配给全局变量"m"的值"x"变成了值"y"(因为"m"被分配为等于函数"A"的返回,但不等于值"x(。

在这种情况下,我想问以下问题:

如何保存第一次从函数"A"获得的值"x",同时从函数"A"获得值"y",以便在代码的后面部分使用"x"one_answers"y"?非常感谢。

您可以将所有这些存储在一个字典中,因此每次调用函数时,都会使用您选择的标签将结果存储在字典中。在这个例子中,我使用随机字符,获得它们的unicode点代码,并将它们存储在字典中。稍后可以使用char查找这些内容。

def my_func(char):
return ord(char)
results = {}
for char in "duthxb":
results[char] = my_func(char)
print(results)
print(results['t'])

输出

{'d': 100, 'u': 117, 't': 116, 'h': 104, 'x': 120, 'b': 98}
116

将值存储在字典中。

像这样:

GLOBAL_VARIABLE = {}

def calculate_output(input):
# Calculate and return the output for the given input

def function(input):
if GLOBAL_VARIABLE.get(input) is None:
GLOBAL_VARIABLE[input] = calculate_output(input)
return GLOBAL_VARIABLE[input]

那么程序的其他部分就不需要直接访问GLOBAL_VARIABLE。

始终调用函数,如果存在,它将返回预先计算的输出,否则它将首先计算并存储以备以后使用。如果可以避免的话,直接使用全局变量被认为是不好的做法。

实际示例:

MULTIPLY_BY_2_CACHE = {}

def calculate_multiply_by_2(number):
return number * 2

def multiply_by_2(number):
if MULTIPLY_BY_2_CACHE.get(number) is None:
print("Calculating result for %d" % number)
MULTIPLY_BY_2_CACHE[number] = calculate_multiply_by_2(number)
else:
print("Retrieving existing result for %d" % number)
return MULTIPLY_BY_2_CACHE[number]

print(multiply_by_2(1))
print(multiply_by_2(1))
print(multiply_by_2(2))
print(multiply_by_2(3))
print(multiply_by_2(2))

结果:

Calculating result for 1
2
Retrieving existing result for 1
2
Calculating result for 2
4
Calculating result for 3
6
Retrieving existing result for 2
4

相关内容

  • 没有找到相关文章

最新更新