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