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

看板Python作者時間6年前 (2019/03/14 15:09), 編輯推噓2(201)
留言3則, 3人參與, 6年前最新討論串1/1
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是固定的,每次呼叫函式都要 傳感覺也不符合函式本身的設計,雖然是可以用預設引數來處理。 但好像還是覺得怪怪的 ,想請問這種時候該怎麼寫會比較符合效率還有整體的結構? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.29.85 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1552547389.A.FF3.html

03/14 18:31, 6年前 , 1F
我會這樣做 https://is.gd/BIKSJ3
03/14 18:31, 1F

03/14 21:17, 6年前 , 2F
寫成closure
03/14 21:17, 2F

03/16 14:28, 6年前 , 3F
寫成class,放在 __init__ 裡
03/16 14:28, 3F
文章代碼(AID): #1SYVuz_p (Python)
文章代碼(AID): #1SYVuz_p (Python)