仅出于组织目的使用仅使用静态方法的类吗?

时间:2018-11-28 22:27:08

标签: python class static-methods

我为MSSP工作,我们可以根据一些简单的if-then逻辑来处理我们处理的许多安全警报(尤其是针对新客户),而无需花费分析师时间进行研究。为了处理这类警报,我正在构建一个带有一系列逻辑测试的基本python程序,以查看给定的警报是否属于“已知”类别并且可以自动处理。

我希望的格式是为我们为组织目的服务的每个客户提供一个单独的python文件,并且在每个文件中包含一系列条件,并在满足条件时采取相应的措施。然后,管理脚本会提取警报数据,并通过相应客户端文件中的每个条件运行警报数据,当条件返回True时,它将把数据传递到相应的动作函数中。所以我的问题是如何组织这个。

当前,在客户文件中,我有一个用于每个“已知”条件的类,带有两个@staticmethod函数:condition()和action()。那么,管理脚本的逻辑实际上就是[pseudocode]:

for class in client_file:
    if class.condition(alert_data):
        class.action(alert_data)

在组织上,我喜欢这个。每个客户端都有一个文件,每个要查找的已知事物都有一个类。我很犹豫,我不确定这是“ pythonic”还是一般的犹太洁食。我之所以使用@staticmethod,是因为我不需要这些类具有多个实例,我只是喜欢将功能分组到具有逻辑相关性的类中的组织能力,但是看起来还是有点奇怪,我担心可能会造成混乱。

所以我对社区的意见感兴趣,这对于我的应用程序来说似乎是一种不错的组织方法,或者您对保持一切整洁的更好方法有何建议?

示例类:

class HostIsWindows:
    @staticmethod
    def condition(alert_data):
        if 'os_type' in alert and alert['os_type'] == 'windows':
            return True
        else:
            return False

    @staticmethod
    def action(alert_data):
        ... do something ...
        return "This is a result message."

0 个答案:

没有答案