创建python键控数组

时间:2012-02-24 19:14:08

标签: python

我称他们为键控数组,因为如果我知道他们叫什么,我可以自己找到答案= - )

好的,例如:

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

这些被称为什么?我在哪里可以找到有关如何创建和使用它们的文档?

3 个答案:

答案 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