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

作者: ddavid (謊言接線生)   2021-08-10 14:46:18
※ 引述《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():
作者: HuangJC (吹笛牧童)   2021-08-21 20:32:00
我直接就會用 class 做;不知什麼叫'還用不到 class',但如果 class 代表較大的資源消耗,我就理解了。我只在乎class 好寫,易懂 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com