[问题] 函数、程式结构如何设计?

楼主: wallrose (墙玫瑰)   2018-04-02 20:02:50
想问一个"如何设计"的问题...
假设F, G是函数
a, b, c是arguments
最终我要的是
ans = F(........)
那我应该:
[1]
def G(a, b, c):
...
...
return g
def F(a, b, c):
g = G(a, b, c)
...
...
y = ...
return y
ans = F(a, b, c)
[2]
def G(a, b, c):
...
...
return g
g = G(a, b, c)
def F(g):
...
...
y = ...
return y
ans = F(g)
[3]
其他
不知道这种问题的关键字是什么 程式结构? 函数结构??
希望我有表达清楚
"..." 只是 do somethig的意思
这例子因为只是为了举例 看起来不复杂
但有时候写的东西稍微大一点 要用到非常多函数
彼此又相依
想问那一种写法 程式结构、可读性 会比较好??
或是看情况??
谢谢
作者: Panthalassa   2018-04-02 21:23:00
一点浅见... 看你有没有需要在其他地方用到 G() ?
作者: s860134 (s860134)   2018-04-02 22:25:00
这和软工比较有关,会有点抽象尽量做到一个 函数 一个一件事,可变参数拉到引数
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2018-04-03 07:57:00
clean code 之类的,但还是多写code先
作者: Yshuan (倚絃)   2018-04-03 11:32:00
如果你的F必定吃G的产出 那么定一个结构去接吧
作者: FakeGPS (一次就上手)   2018-04-03 11:45:00
我是新手 觉得1这样写很怪 你都已经得到g了 干嘛再算一次
作者: froce (froce)   2018-04-03 15:57:00
如果不写class的话,我会用F(G(a, b, c))这种方式。1.这样也不会用到全域变量。2.这样符合数学函式的形式。其实如果你确定中间的全域变量不会被改变的话,2的写法会比较能被接受。另外如果G()是F()里面专用的函式的话,就写在F里面就好https://ideone.com/NitkkP上次写的范例
作者: s860134 (s860134)   2018-04-04 02:01:00
你先不要管什么好处不好处,所有软工追求不外乎:1.可再利用(扩充) 2. 易读 3. 效能1. 的写法 F 理面直接用到 G 两者偶合性很强2. F 则是取于 G 的运算结果,对于后续修改比较好的

Links booklink

Contact Us: admin [ a t ] ucptt.com