Python-将类变量指针指定给实例方法

Python-将类变量指针指定给实例方法,python,Python,我有一个类,我想将某个方法重新分配给同一类的隐藏方法。 在我的例子中,我有一个要分配给特定实现的通用筛选器。 我希望将func\u映射作为类属性而不是实例属性,因为它看起来更具逻辑性。我该怎么做 class MyClass: func_map = {"eq" : __eq_filter} def set_filter(self, func): self.filter = MyClass.func_map[func] def filter(self, va

我有一个类,我想将某个方法重新分配给同一类的隐藏方法。
在我的例子中,我有一个要分配给特定实现的通用筛选器。
我希望将
func\u映射
作为类属性而不是实例属性,因为它看起来更具逻辑性。我该怎么做

class MyClass:
    func_map = {"eq" : __eq_filter}
    def set_filter(self, func):
        self.filter = MyClass.func_map[func]

    def filter(self, value):
        raise NotImplementedError

    def __eq_filter(self, value):
        return self.attribute == value
可能使用内置的@staticmethod装饰器,根据文档,它允许将方法绑定到类而不是实例(将方法转换为静态方法):


查看文档了解更多信息:

staticmethod更像是一个独立函数,但在类中。静态方法不应具有自参数。有一个classmethod将类作为参数提供。@PaulRooney你说得对,我编辑了代码,但这不是我的问题。问题是在字典中放置什么作为
{“eq”:{uu eq\u filter}
抱怨
eq\u filter
未定义
class MyClass:
    func_map = {"eq" : __eq_filter}
    def set_filter(self, func):
        self.filter = func_map[func]

    def filter(self, value):
        raise NotImplementedError

    @staticmethod
    def __eq_filter(self, value):
        return self.attribute == value