簡體   English   中英

如何訪問嵌套函數中更多全局函數中的變量? (蟒蛇)

[英]How to access variables in more global functions within a nested function? (Python)

我正在另一個函數中運行一個函數。 但是,嵌套更多的函數無法訪問主要的全局函數中的變量。 當我嘗試運行代碼時,出現“ x not defined”錯誤。 我認為,由於x是作用域范圍更大的全局變量,因此應該可以訪問。

def func_master():
    x = 'hello world'
    test_sub()


def test_sub():
    print(x)

func_master()

我希望它打印出“ hello world”。

您的函數不是“嵌套的”,這意味着其中一個在另一個內部定義 相反,您是從另一個函數內部調用一個函數,但是這些函數是分別定義的 ,而不是在另一個函數內部定義的。

Python的范圍規則基於函數的定義方式 所以,當func_master調用test_sub ,名稱x中被定義func_master不訪問test_sub

使xtest_sub可用的最佳方法(但不僅如此)是將x作為參數傳遞。 修改func_master的調用以傳遞x並修改test_sub的定義以接收它。 良好的編程習慣是,一個例程將所有需要的信息作為參數傳遞-除非絕對需要,否則避免使用全局變量等。

def func_master():
    x = 'hello world'
    test_sub(x)


def test_sub(x):
    print(x)

func_master()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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