gpt4 book ai didi

python - 伪字典作为属性

转载 作者:行者123 更新时间:2023-11-28 17:54:09 25 4
gpt4 key购买 nike

我有一个 Python 类 C,它应该有两个伪 dict ab。术语伪字典意味着字典实际上并不存在,并且每次访问键时都会“重新计算”它们。

在伪代码中,这看起来像这样:

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'

我可以为 ab 实现一个类,但由于两者都只有几个简短的方法,我想知道是否有更优雅、更紧凑的方法这个。

最佳答案

为什么不定义自己的类?

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com