簡體   English   中英

python:在不同模塊的函數中訪問變量

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

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