如何使两个helper函数返回不同的值?

2024-10-01 13:44:00 发布

您现在位置:Python中文网/ 问答频道 /正文

from collections import defaultdict

class ExtensionPoint:

    def __init__(self):
        self.__items = []

    def register(self, module, item):
        self.__items.append((module, item))

    def unregister_module(self, name):
        self.__items = [item for item in self.__items if item[1] != name]

priority = 1

class PluginFunctions:

    def __init__(self):
        self.functions = defaultdict(ExtensionPoint)

    def register(self, module, item):
        self.functions[priority].register(module, item)

    def unregister(self, item):
        self.functions[priority].unregister_module(item)

    def helper(self):
        print(self.functions)

obj = PluginFunctions()

obj. register("a","b")
obj.helper()
obj.unregister("b")
obj.helper()

为什么这两个helper函数返回相同的值?如何让unregister函数从dict中删除值呢?我不明白这个代码有什么问题。你知道吗


Tags: selfhelperregisterobjinitdefitemsitem