[英]import module : global variable within function
有兩個py文件。 實用程序
def add_sum():
print(x + 3)
測試文件
from util import *
x=3
add_sum()
當我運行 test.py 時,出現錯誤:
Traceback (most recent call last):
File "test.py", line 45, in <module>
add_sum()
File "util.py", line 10, in add_sum
print(x + 3)
NameError: name 'x' is not defined
變量x是全局的,為什么函數無法到達x並引發錯誤?
Python 的“全局變量”只是定義它們的模塊的全局變量。這是設計使然 - 只有在確實無法避免它們時才應該使用全局變量,因為它會使代碼更難理解、測試和維護。
在您的情況下,正確的方法是明確地將x
傳遞給您的函數:
# util.py
def add_sum(x):
return x + 3
和
# test.py
# NB: star imports are evil too, for the very same reasons
from util import add_sum
x=3
print(add_sum(x))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.