[问题] 请问这种函式该怎么写比较好

楼主: 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