python - 如何在 Python 中实现规则集

标签 python rules business-rules

我处理一个大型数据集,其中基于 A 列,我想以特定方式处理其他一些列。

如果 A 列有“processLastNameOnly”,那么我只处理 LastName。 如果 A 列有“processMiddleAsFirst”,那么我将中间名作为名字处理。

等等

这些规则很多而且很复杂,我想以某种最好的标准“规则集”格式将它们保存在一个单独的文件中。

这些规则是否有通用的格式?如何在 Python 代码中使用它?

最佳答案

Python 的妙处在于一切皆对象,包括函数。因此,您可以创建一个字典,将字符串(在 columnA 中)映射到一个函数。

def processLastNameOnly(...):
    pass  # process data here
def processMiddleAsFirst(...):
    pass  # process data here

ruleset = {'processLastNameOnly': processLastNameOnly, 
           'processMiddleAsFirst': processMiddleAsFirst}


# Call the function from the dict with the appropriate args
ruleset[columnA_value](...)

您可以将规则集和函数存储在单独的文件中,然后像导入任何 Python 对象/函数一样导入该文件。

可以查看this Stack Exchange link进行深入讨论。

关于python - 如何在 Python 中实现规则集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33712188/

相关文章:

python - 我如何在 python 中使用 cssutils 编辑规则

c# - 在具有 3 层架构的 ASP.NET MVC 应用程序中验证业务规则的更好方法是什么?

python - 添加到 pandas python df 中的列

python - 当用户提交表单时,Django 博客向管理员发送电子邮件

python 和 django : execute python script from django web form?

c - 如何设定规则的优先级?

Python:为什么我的模块变量丢失了它们的内容?

permissions - Yii2 RBAC 权限可以有多个规则吗?

business-rules - 业务逻辑/规则 - 在数据库或内存中处理

angular - 为什么 Angular 验证是在组件/表单中完成的,而不是在域模型上完成的?