三元作为函数参数?



我有一个函数,我在句子和文件路径中搜索正则表达式模式。要做到这一点,我需要将文本块化,以便它计算整个单词,而不是单个字符。

def print_word_and_match_fragment(text):
word_list = text.split('\') if '\' in text else text.split()
patterns = re.compile(r'^[a,A][b,B]{2,3}$')
d = dict()
for i in word_list: # Does something 

对我来说,我必须在函数中创建一个局部三元变量来做我需要它做的事情,这似乎是不对的

为什么不可以呢:

def print_word_and_match_fragment(text = text.split('\') if '\' in text else text.split() ):

patterns = re.compile(r'^[a,A][b,B]{2,3}$')
d = dict()
for i in text: # Does something 

有没有一种方法,我可以把三进制称为函数参数,或者至少是等价的东西?不一定是三进制。我有一些模糊的想法,可能是使用**args:=

这将适用于默认参数,但只有在读取函数定义时才会对求值一次
另见"Least Astonishment"和可变的默认参数

相反,您可以使用re.findall()re.finditer()来选择性地包括//b作为字边界

最新更新