gpt4 book ai didi

python - 如何运行python文件中的所有方法,并返回是否有任何方法返回true?

转载 作者:行者123 更新时间:2023-12-03 05:05:11 25 4
gpt4 key购买 nike

如何运行python文件中的所有方法,并返回是否有任何方法返回true?

我正在尝试如下:

def rule1(content):
if content has a value1:
return true
return false

def rule2(content):
if content has a value2:
return true
return false

...

def main(content):
return rule1(content) or rule2(content) or ... or ruleN(content) #The code line that I don't like

这将被导入到另一个 python 文件中,并调用如下:

import rules.py

...

def foo():
...
if(rules.main(content)):
some action

规则会不断添加,所以 main 方法中的那一行看起来不太好。

我可以让main方法即使添加新规则也不必更改吗?

谢谢:)

最佳答案

像这样的东西应该可以工作。只需使用inspect获取当前模块中所有名称以rule开头的函数,然后调用这些函数即可。

import sys
import inspect


# All your functions...


def main(content):
for name, ref in inspect.getmembers(sys.modules[__name__]):
if callable(ref) and name.startswith("rule") and ref(content):
return True
return False

关于python - 如何运行python文件中的所有方法,并返回是否有任何方法返回true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61400265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com