[問題] 請問這種函式該怎麼寫比較好

作者: jijuan   2019-03-14 15:09:47
import re
def check_name(input_string):
regex = re.compile(r'[a-zA-Z.]+\s[a-zA-Z.]+')
result = regex.match(input_string)
# to do
如果把regex的編譯寫在函式裡,代表每次被呼叫它都會被執行一次,我試過呼叫函式1000
0次來測試時間,發現如果把regex = re.compile(r'[a-zA-Z.]+\s[a-zA-Z.]+') 這行寫在
函式外,速度會快接近一倍。
可是這樣寫的話又脫離了函式本身,比方說可能把宣告好要用的各種變數, 然後很多行後
才定義函式,感覺程式行數比較多的話看起來很不直觀。
想到一個方法是把regex當作引數傳進去,但因為這個 regex是固定的,每次呼叫函式都要
傳感覺也不符合函式本身的設計,雖然是可以用預設引數來處理。 但好像還是覺得怪怪的
,想請問這種時候該怎麼寫會比較符合效率還有整體的結構?
作者: yougigun   2019-03-14 21:17:00
寫成closure
作者: eight0 (欸XD)   2019-03-14 18:31:00
我會這樣做 https://is.gd/BIKSJ3
作者: froce (froce)   2019-03-16 14:28:00
寫成class,放在 __init__ 裡

Links booklink

Contact Us: admin [ a t ] ucptt.com