Python如何在函数(F1内的F2)中使用(函数F1内的变量)

问题描述 投票:0回答:2
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()

所以我在函数内部有一个函数。由于F2()是递归的,因此我必须将变量存储在外部。

在C中,我将两者分开或传递指针,在Java中,我将创建对象。但是Python中有没有可以让我快速进行此操作而无需进行太多更改的功能?我不想使用全局变量,需要将myvar保留在[​​C0]]的上下文中

谢谢。

def F1():myvar = 1 myArrayVar = [] def F2():global myvar,myArrayVar#这将通过F2()myvar = 2 myArrayVar.append(myVar)print(myvar)进行更改...

python function recursion scope
2个回答
2
投票

您可以使用F1()变量:


2
投票

实际上,只有2 [2] 需要在此处声明为myvar变量。 nonlocal只是一个闭合变量,因为您无需重新绑定名称,因此不需要特殊处理。

© www.soinside.com 2019 - 2024. All rights reserved.