如何使用元组和字典特征的数据结构

Che*_*eng 2 python psycopg2

通过引用代码

http://initd.org/psycopg/docs/extras.html#dictionary-like-cursor

>>> rec['data']
"abc'def"
>>> rec[2]
"abc'def"
Run Code Online (Sandbox Code Playgroud)

我想知道他们如何设法创建一个具有元组和字典特征的数据结构?

Kat*_*iel 5

在Python中,[]查找由__getitem__魔术方法处理; 换句话说,当您索引自定义类时,Python将调用instance.__getitem__(...)并返回值.这可以让你做到例如

>>> class Foo:
...     def __getitem__(self, value):
...             return value
...
>>> foo = Foo()
>>> foo["1"]
'1'
>>> foo[0]
0
Run Code Online (Sandbox Code Playgroud)

维护实际数据结构有几种自然的方法; 或许最简单的就是保持双方的字典和一个列表和索引其中之一取决于密钥类型.

请注意,这是不自然的; 你会期望一个像字母一样的对象0作为一个关键.可能值得编写一种不同的方法,例如index处理索引.

您可能还希望实现__setitem____contains__方法.