Re: [問題] 多個function的變數需互通的運用

看板Python作者 (霹靂狗)時間2年前 (2021/08/10 02:41), 編輯推噓5(508)
留言13則, 3人參與, 2年前最新討論串2/3 (看更多)
延續上篇討論,目前已採用參數來實現。 另外一個延伸問題 fun1判斷test1來決定是否呼叫fun4 整個流程是start1()->fun1() -> 判斷test1為1才呼叫fun4() 第二個問題是fun3需要判斷fun2的test值,如果是1就印出Hello, 可是是fun2跟fun3是同層,fun3要怎麼調用fun2底下的test2? 另外test1這種寫法是對的嗎,跳了好幾層看了就覺得怪怪的 謝謝 def start1(test1): a1='xxx' a2='xxx' a3='xxx' fun1(a1,test1) fun2(a2) fun3(a3) def fun1(a1,test1): if(test1==1): fun4() def fun2(a2): test2=X def fun3(a3,test2): if(test2==1): print('Hello') def fun4(): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.104.34.155 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1628534512.A.B4C.html

08/10 04:54, 2年前 , 1F
我不太清楚你的需求 但是個人覺得你的fun應該可以改寫
08/10 04:54, 1F

08/10 04:57, 2年前 , 2F
fun1可以改成回傳boolean 在start1判斷如果fun1是True
08/10 04:57, 2F

08/10 04:58, 2年前 , 3F
就執行fun4
08/10 04:58, 3F

08/10 04:59, 2年前 , 4F
fun2不太清楚目的 是要將global的test2設成X?
08/10 04:59, 4F

08/10 05:01, 2年前 , 5F
fun3跟fun1作法一樣
08/10 05:01, 5F

08/10 05:02, 2年前 , 6F
除非你的test1跟test2可以依照不同情境對應不同執行流
08/10 05:02, 6F

08/10 05:05, 2年前 , 7F
例如test1==1做A test1==2做B 那麼你原本的設計是OK的
08/10 05:05, 7F

08/10 07:01, 2年前 , 8F
第一個問題 邏輯上來看沒有大問題
08/10 07:01, 8F

08/10 07:03, 2年前 , 9F
第二個問題 看起來是要把start1(test)底下改寫成
08/10 07:03, 9F

08/10 07:05, 2年前 , 10F
fun3(a3,fun2(a2)) 這樣?(有點不太確定)
08/10 07:05, 10F

08/10 07:07, 2年前 , 11F
然後利用fun2去return出test2的數值
08/10 07:07, 11F

08/10 22:56, 2年前 , 12F
其實如果只是程式邏輯,有好多種解法,重要的是需求是
08/10 22:56, 12F

08/10 22:56, 2年前 , 13F
什麼,才能知道怎麼寫比較好
08/10 22:56, 13F
文章代碼(AID): #1X4NRmjC (Python)
文章代碼(AID): #1X4NRmjC (Python)