Python 中递归函数的全局变量



我正在使用pyhton来表示名为sphereinput的递归函数,该函数需要返回变量名称结果作为输出。通过在递归函数中将其声明为全局函数,我不必在函数末尾使用 return。 在我的程序的主文件中调用时,函数是否会返回具有正确答案的结果。 我的保留意见是,对于函数球体输入本身的每次调用,全局变量结果都会相应地更新,对吧?

def sphereinput(parameters)
global result
Recursive call to sphereinput
result=assigned value

请注意,我在这里没有使用 return 语句。我必须这样做吗? 此外,当我在每次调用函数后将其定义为与主代码相同的文件中时,它会再次开始执行函数下面的代码行,这些代码行是主代码的一部分,不得执行。

如果我必须在另一个文件中定义此函数,如何从主文件调用它,然后在主文件和函数代码文件中必须全局定义哪些变量?

结果将相应地更新,但除非您明确这样做,否则不会返回。

我不知道你的意思

此外,当我在每次调用 函数它再次开始执行下面的代码行 函数 是主代码的一部分,不得执行。

要从主文件调用它,您必须首先导入模块(=file),然后调用其函数:

import myfile
myfile.sphereinput(args)

您不必在其他任何地方定义结果变量,只要确保在调用 sphereinput 之前不使用它即可。

您也可以以另一种方式递归调用函数,这不需要全局变量:

while True:
temp = sphereinput(args)
if temp is None:
break
result = temp

在这里,当您不需要任何进一步的递归时,您只需返回 None。

相关内容

  • 没有找到相关文章

最新更新