[英]global variable for recursive functions in python
我正在將pyhton用於名為sphereinput的遞歸函數,該函數需要返回變量名稱結果作為輸出。通過在遞歸函數中將其聲明為全局變量,我將不必在函數末尾使用return。 在我程序的主文件中調用該函數時,返回的結果是否具有正確的答案。 我的保留意見是,對於每次對sphereinput函數本身的調用,全局變量結果都會相應地更新,對嗎?
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即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.