我有一个 Python 类 C
,它应该有两个伪 dict
a
和 b
。术语伪字典意味着字典实际上并不存在,并且每次访问键时都会“重新计算”它们。
在伪代码中,这看起来像这样:
class C:
def a.__getitem__(self, key):
return 'a'
def b.__getitem__(self, key):
return 'b'
>>> c = C()
>>> c.a['foo']
'a'
>>> c.b['bar']
'b'
我可以为 a
和 b
实现一个类,但由于两者都只有几个简短的方法,我想知道是否有更优雅、更紧凑的方法这个。
最佳答案
为什么不定义自己的类?
class PseudoDict(object):
def __init__(self, c):
self.c = c
def __getitem__(self, key):
return self.c.somethingmagical()
class C(object):
def __init__(self):
self.a = PseudoDict(self)
self.b = PseudoDict(self)
c = C()
print c.a['foo']
print c.b['bar']
我不确定这些“伪字典”的值从何而来,因此您必须更新 __getitem__
方法。
关于python - 伪字典作为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3572526/