[英]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
。
使x
在test_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.