[英]python: Accessing variable in functions in different modules
我已經將我正在嘗試做的事情提煉成最簡單的形式。 我有一個運行良好的模塊(prog1.py)。 prog1.py 中的 function 訪問變量 (yy) OK 沒有錯誤。
#prog1.py
def func():
print (yy)
return()
def main(yy):
print(yy)
func()
return()
#-----------------------------------------------
if __name__ == '__main__':
yy = 200
main(yy)
當我將該模塊導入另一個模塊(prog2.py)時,相同的 function 無法訪問變量(yy)。
#prog2.py
import prog1
yy = 200
prog1.main(yy)
我得到:
名稱 'yy' 未在 func 的第 3 行中定義。
執行此操作的“正確”(python)方法是什么?
問題在於func
:
def func():
print (yy)
return()
行print (yy)
嘗試訪問yy
,但if __name__ == '__main__':
不適用於該模塊( __name__
將是prog1
而不是__main__
),因此它不會在 go 內部if
:
if __name__ == '__main__':
yy = 200
main(yy)
因此yy
不會被定義。
閱讀更多關於if __name__ == '__main__':
在這個問題中。
根據您在評論中提到的內容:
#prog1.py
yy = 'prog1 yy'
def func():
print(yy)
def main(yy):
print(yy)
func()
if __name__ == '__main__':
yy = 200
main(yy)
# prog2.py
import prog1
yy = 200
prog1.main(yy)
跑:
python prog2.py
Output:
200
prog1 yy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.