看板 Python 關於我們 聯絡資訊
※ 引述《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
HuangJC: 我直接就會用 class 做;不知什麼叫'還用不到 class',但 08/21 20:32
HuangJC: 如果 class 代表較大的資源消耗,我就理解了。我只在乎 08/21 20:33
HuangJC: class 好寫,易懂 XD 08/21 20:33
你用class,「相對上」概念是那些資訊有實體化包裝起來持續保留的價值。 但是也沒有說用哪種方法就對或就錯,只求寫出來可用的話,當然就是寫出來就 好。不過如果是巨大程式的一環、如果這部份會重複執行、如果交互作用的function 數量很多、如果……,有很多理由會讓某些解比另外一些解更好一些,所以終究還是 要看用例。 我其實不知道傳回值為啥有比class難懂,不特別考慮用例的話,單就原問題而 言不是一樣好寫好懂嗎XD ※ 編輯: ddavid (114.44.0.79 臺灣), 08/23/2021 23:43:57