Joh*_*cés 2 python dictionary static-members python-2.7
我有一个包含静态字典的类:
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)
Run Code Online (Sandbox Code Playgroud)
每当我想要更新字典时,我都必须使用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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2023 次 |
| 最近记录: |