如何从函数生成函数
how to generate function from a function
您好,我正在使用以下形式编写很多函数:
def is_match_a(doc):
pattern = # spaCy patterns
matcher = Matcher(nlp.vocab)
matcher.add("match_a", [pattern])
matches = matcher(doc)
if matches:
return True
我想编写一个函数,根据给定的模式和名称生成这些函数。我在想:
def generate_matcher(pattern, name):
func = some code
return func
最终,我可以做以下事情
is_match_a = generate_matcher(pattern_a, name_a)
is_match_b = generate_matcher(pattern_b, name_b)
if is_match_a(doc):
# do something
elif is_match_b(doc):
# do something else
我是 python 的新手,我不知道该怎么做。这是你使用装饰器的地方吗?
定义一个使用主函数的 pattern
和 name
参数的嵌套函数。
def generate_matcher(pattern, name):
def is_match(doc):
matcher = Matcher(nlp.vocab)
matcher.add(name, [pattern])
matches = matcher(doc)
if matches:
return True
return is_match
您好,我正在使用以下形式编写很多函数:
def is_match_a(doc):
pattern = # spaCy patterns
matcher = Matcher(nlp.vocab)
matcher.add("match_a", [pattern])
matches = matcher(doc)
if matches:
return True
我想编写一个函数,根据给定的模式和名称生成这些函数。我在想:
def generate_matcher(pattern, name):
func = some code
return func
最终,我可以做以下事情
is_match_a = generate_matcher(pattern_a, name_a)
is_match_b = generate_matcher(pattern_b, name_b)
if is_match_a(doc):
# do something
elif is_match_b(doc):
# do something else
我是 python 的新手,我不知道该怎么做。这是你使用装饰器的地方吗?
定义一个使用主函数的 pattern
和 name
参数的嵌套函数。
def generate_matcher(pattern, name):
def is_match(doc):
matcher = Matcher(nlp.vocab)
matcher.add(name, [pattern])
matches = matcher(doc)
if matches:
return True
return is_match