[問題] 有關function的一些問題

作者: qk13 (塔斯汀狗)   2014-03-14 00:08:01
版上的大家好,斷斷續續接觸python大概一年多
目前使用過簡單的python語法寫一些程式
有幾個問題想請問一下,
1. 多個function共用變數該怎麼去寫比較好?
兩個或三個function都會用到一樣的東西(假設共同部分有20行之類的)
<f0.py>
def generate():
var0 = 123
list0 = [1,2]
...
f0_descriptions....
return str
<f1.py>
def generate():
var0 = 123
list0 = [1,2]
...
f1_descriptions.....
return str
<gen.py>
import f0,f1
ff0 = open('a0','w')
ff1 = open('b0','w')
ff0.write(f0.gen(xxx))
ff1.write(f1.gen(xxx))
ff0.close()
ff1.close()
有甚麼比較簡潔的方法可以讓我達成我的目的?
就是不用每個function都傻傻的寫一樣的變數宣告,
然後改的時候三個都要一起改@_@
2. 有人會用 在function裡面在宣告一個function 這種用法嗎
譬如
def f00():
def in_f00():
a = b = 1
...
f00_descriptions.....
c = d = 2
gogo = in_f00(xxxx,xxxx)
3. 通常大家都怎麼判斷自己寫的程式夠不夠簡單快速明瞭呢?
是持續的看python的書?多看一些實用的function
(這問題只是剛好問問@_@)
先謝謝熱心回覆的版友了!
作者: darkgerm (黑駿)   2014-03-14 00:36:00
1. 拉出來寫成 config.py 之類的然後要用時 import ?2. 會 尤其 decorator 很常這樣用3. 多看code吧@@ 速度的話你可能要參考演算法的書
作者: gozule (好冷啊~~)   2014-03-14 23:17:00
1.可以考慮把function改為class用繼承的功能2.decorator就是這樣做到的3.除了演算法外,也可以用cython加速

Links booklink

Contact Us: admin [ a t ] ucptt.com