我正在使用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。