我使用pyhton作为名为 sphereinput 的递归函数,函数需要返回一个变量名 result 作为输出。在递归函数中声明它是全局的我会不必在函数结束时使用return。 在我的程序的主文件中调用时,函数是否会返回结果具有正确的答案。 我的保留是,对于函数 sphereinput 的每次调用,全局变量结果都会相应更新,对吗?
def sphereinput(parameters)
global result
Recursive call to sphereinput
result=assigned value
请注意,我在这里没有使用return语句。我必须这样做吗? 此外,当我在每次调用函数后将其定义在与主代码相同的文件中时,它再次开始执行函数下面的代码行,这是主代码的一部分,不能执行。
如果我必须在另一个文件中定义此函数,我如何从主文件中调用它,然后必须在主函数和函数代码文件中定义哪些变量全局?
答案 0 :(得分:0)
结果将相应更新,但除非您明确这样做,否则不会返回。
我不知道你的意思
当我在每次调用后在同一个文件中将其定义为主代码时 函数它再次开始执行函数下面的代码行 是主要代码的一部分,不得执行。
要从主文件中调用它,您必须首先导入模块(= file),然后调用它的函数:
import myfile
myfile.sphereinput(args)
只要在调用sphereinput之前确保不使用结果变量,就不必在其他地方定义结果变量。
您也可以通过其他方式递归调用函数,这不需要全局变量:
while True:
temp = sphereinput(args)
if temp is None:
break
result = temp
如果您不想再进行任何递归,只需返回None。