Message384488
Okay, I found the solution. Not using super() works:
from typing import NamedTuple
class Spamm(NamedTuple):
foo: int
bar: str
def __getitem__(self, index_or_key):
if isinstance(index_or_key, str):
try:
return getattr(self, index_or_key)
except AttributeError:
raise KeyError(index_or_key) from None
return tuple.__getitem__(self, index_or_key)
def keys(self):
yield 'foo'
yield 'bar'
def main():
spamm = Spamm(12, 'hello')
print(spamm.__getitem__)
print(spamm.__getitem__(1))
d = dict(spamm)
print(d)
if __name__ == '__main__':
main()
Result:
<bound method Spamm.__getitem__ of Spamm(foo=12, bar='hello')>
hello
{'foo': 12, 'bar': 'hello'} |
|
Date |
User |
Action |
Args |
2021-01-06 10:58:49 | conqp | set | recipients:
+ conqp, rhettinger, bob.ippolito, eric.smith, steven.daprano |
2021-01-06 10:58:49 | conqp | set | messageid: <1609930729.04.0.0414635678077.issue42765@roundup.psfhosted.org> |
2021-01-06 10:58:49 | conqp | link | issue42765 messages |
2021-01-06 10:58:49 | conqp | create | |
|