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