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

看板Python作者 (謊言接線生)時間3年前 (2021/08/10 14:46), 3年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《piligo (霹靂狗)》之銘言: : 延續上篇討論,目前已採用參數來實現。 : 另外一個延伸問題 : fun1判斷test1來決定是否呼叫fun4 : 整個流程是start1()->fun1() -> 判斷test1為1才呼叫fun4() : 第二個問題是fun3需要判斷fun2的test值,如果是1就印出Hello, : 可是是fun2跟fun3是同層,fun3要怎麼調用fun2底下的test2? : 另外test1這種寫法是對的嗎,跳了好幾層看了就覺得怪怪的 : 謝謝 先一個無關緊要的建議,function縮寫建議用func,用fun感覺就會比較fun XD 然後你可能沒注意function可以傳回值?下面是傳回值的做法。class的做法也 可以解決,然而要從設計概念上考慮適合哪一種做法。 要注意以下雖然為了顯眼把func2、func3跟start1裡面都用test2來命名,但其 實三個可以不需要是同一個名字。 def start1(test1): # 前面省略 # 以下兩行可以精簡為 func3(a3, func2(a2)) test2 = func2(a2) func3(a3, test2) def func2(a2): test2 = foo # foo可能是func2前面做了啥運算得到的,如果有多處會得到不 # 同值就可能這麼寫來統一輸出接口而不是寫多個return,當然 # 依程式邏輯與設計,直接return foo也OK return test2 def func3(a3, test2): # 內容省略 : 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), 來自: 114.32.17.60 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1628577980.A.255.html ※ 編輯: ddavid (114.32.17.60 臺灣), 08/10/2021 16:56:58
文章代碼(AID): #1X4Y2y9L (Python)
文章代碼(AID): #1X4Y2y9L (Python)