看板 Python 關於我們 聯絡資訊
請問我有兩個.py檔 執行檔run.py和運算檔cal.py 在執行檔run.py中會import cal.py進行運算 但我在cal.py中需要使用到run.py中的一個def run_maze(): 裡的一個參數i 請問我如何在cal.py中抓到這個i 如果在cal.py中import run.py 但run.py本來就已經有import cal.py了 會出問題 是否在cal.py裡輸入 run.run_maze.i呢 但cal.py根本沒有import run.py所以也抓不到數字 所以也不成功 再請板上高手大大解惑囉 謝激不盡 ※ 引述《Paudse (HI)》之銘言: : 我目前有兩個檔案 : 一個是執行的.py檔 : 一個是模擬環境的.py檔 : 執行的.py檔裡有一個def會計算步數i : 然後模擬環境的.py檔裡的一個class裡的一個def會需要使用這個i去作運算 : 但我使用global似乎環境檔裡的def無法讀到這個i值 : 請問是我global方法用錯 還是不同.py檔間要用其他方式傳共用參數呢 : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.127.10 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1520590660.A.9E1.html ※ 編輯: Paudse (36.236.127.10), 03/09/2018 18:19:55 ※ 編輯: Paudse (36.236.127.10), 03/09/2018 18:20:33
WunoW: 我看你敘述感覺這i不是參數是變數 03/09 20:39
WunoW: google pass variable between modules 看是不是你要的 03/09 20:39
neil987: 在run.py呼叫Cal.py的時候把I傳入就好了吧? 03/09 21:09
s860134: 先理解 import 是甚麼意思,本質上是執行並存到變數 03/10 00:15
s860134: 因此你只要在 run.py 裡面 import cal 等同於執行cal.py 03/10 00:15
s860134: 裡面所有邏輯,並將所有非雙底線開頭變數黏到 "cal" 這個 03/10 00:16
s860134: module object上面 03/10 00:17
s860134: 但是你想要的東西確實可以用些方法實踐 03/10 00:21
s860134: https://imgur.com/pnUnRjp 03/10 00:23
s860134: python 2.7 是 __builtin__ python3.4 是 builtins 03/10 00:24
s860134: 我不太喜歡這種寫法就是了,因為這樣你的 cal madule 03/10 00:25
s860134: 可被 import 的前提就變成是 buildin 終存在這個變數 03/10 00:25