作者jijuan ()
看板Python
標題[問題] 請問這種函示該怎麼寫比較好
時間Thu Mar 14 15:09:47 2019
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
→ yougigun: 寫成closure 03/14 21:17
推 froce: 寫成class,放在 __init__ 裡 03/16 14:28