[英]How to compose a nested function g=fn(…(f3(f2(f1()))…) from a list of functions [f1, f2, f3,…fn]
[英]Python how to use (variables inside function F1) inside function (F2 which is inside F1)
def F1():
myvar = 1
myArrayVar = []
def F2():
global myvar, myArrayVar # this will be changed by F2()
myvar = 2
myArrayVar.append(myVar)
print(myvar)
F2()
F1()
所以我在 function 中有一個 function。 由於 F2() 是遞歸的,我必須將變量存儲在外部。
在 C 中,我將兩者分開或傳遞指針,在 Java 中,我將創建對象。 但無論如何,在 Python 中是否有允許我快速完成此操作而無需太多更改? 我不想使用全局變量, myvar
需要保存在F1()
的上下文中
謝謝你。
您可以使用nonlocal
變量:
def F1():
myvar = 1
myArrayVar = []
def F2():
nonlocal myvar, myArrayVar # this will be changed by F2()
myvar = 2
myArrayVar.append(myvar)
F2()
print(myvar)
print(myArrayVar)
F1()
2
[2]
實際上這里只需myvar
聲明為非 局部變量。 myArrayVar
只是一個閉包變量,因為您不重新綁定它不需要特殊處理的名稱。
def F1():
myvar = 1
myArrayVar = []
def F2():
nonlocal myvar # allows changes to myvar to be seen by the outer scope
myvar = 2
myArrayVar.append(myvar)
print(myvar)
F2()
F1()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.