我称他们为键控数组,因为如果我知道他们叫什么,我可以自己找到答案= - )
好的,例如:
parser = OptionParser(conflict_handler="resolve")
parser.add_option("-x", dest="var_x", help="")
parser.add_option("-y", dest="var_y", help="")
(options, args) = parser.parse_args()
生成一个可以像这样使用的选项对象:
foobar = options.var_x
这些被称为什么?我在哪里可以找到有关如何创建和使用它们的文档?
答案 0 :(得分:2)
一个非常相似的课程是namedtuple
:
In [1]: from collections import namedtuple
In [2]: Point = namedtuple('Point', ['x', 'y'])
In [4]: p = Point(1, 2)
In [5]: p.x
Out[5]: 1
In [6]: p.y
Out[6]: 2
答案 1 :(得分:1)
一种可能是将字典包装在一个对象中,参见下面的类定义:
class Struct:
def __init__(self, **entries):
self.__dict__.update(entries)
然后只需在构造函数中使用字典,如下所示:
adictionary = {'dest':'ination', 'bla':2}
options = Struct(**adictionary)
options.dest
options.bla
options.dest将返回'ination'
options.bla将返回2
答案 2 :(得分:1)
如果您在交互式终端上help(options)
,则会看到这是optparse.Values
个实例。它不是为了制作你自己的东西,真的。
对键值对使用属性访问通常很愚蠢。很多时候,坚持它的人应该只是在使用dict。
沿着这些方向做某事的主要内置方式是collections.namedtuple
。