支持项目分配的类中的Python静态字典

标签 python dictionary python-2.7 static-members

我有一个包含静态字典的类:

class MyClass:
    my_dict = {}
    def __init__(self, name):
        self.name = name
        MyClass.my_dict[self.name] = []
    def __call__(self, data):
        MyClass.my_dict[self.name].append(data)

每当我想更新字典时,我都必须使用 MyClass.my_dict[key],但我希望类本身支持项目分配,这样我就可以使用 MyClass [key] 做同样的事情。有没有办法做到这一点?我使用的是 Python 2.7。

最佳答案

所以,这就是我最终所做的:

class MyClassType(type):
    my_dict = {}
    def __getitem__(cls, key):
        return cls.my_dict[key]
    def __setitem__(cls, key, value):
        cls.my_dict[key] = value
    def __str__(cls):
        return cls.my_dict.__str__()
    def iteritems(cls):
        return cls.my_dict.iteritems()

class MyClass(object):
    __metaclass__ = MyClassType
    def __init__(self, name):
        self.name = name
        MyClass[self.name] = []
    def __call__(self, data):
        MyClass[self.name].append(data)

关于支持项目分配的类中的Python静态字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15800770/

相关文章:

python - 如何使用 Python 从文本中提取列?

Python 在同一行中获取 Numpy 相等的结果

python - 来自文件的动态字典

python-2.7 - matplotlib 图不显示在 Anaconda for Linux 上

Python `argparse` : Is there a clean way to add a flag that sets multiple flags (e. g。 `--all`“等同于 `--x --y`)

python - 如何将来自arduino的数据存储在python中的不同变量中?

python - 计算给定其他两个变量的条件概率

python - 如何从具有特定要求的字典中打印键和值

Groovy 映射语法错误

python - 使用 OpenCV 或 Gimp 使用水洗墨水提高旧手写出生声明的质量