作者Paudse (HI)
看板Python
標題Re: 如何呼叫另一檔案裡def裡的參數
時間Fri Mar 9 18:17:38 2018
請問我有兩個.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: 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