簡體   English   中英

Python 如何使用(function F1 內部的變量) function 內部(F2 在 F1 內部)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM