繁体   English   中英

创建python键控数组

[英]creating python keyed arrays

我把它们称为键控数组,因为如果我知道它们的名称,我自己就能找到答案=-)

好的,例如:

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

这些叫做什么,在哪里可以找到有关如何创建和使用它们的文档?

一个做类似事情的类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

一种可能是将字典包装在对象中,有关类的定义,请参见下文:

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

如果在交互式终端上执行help(options) ,则会看到这是一个optparse.Values实例。 的确,这并不是为了制作自己的东西。

对键值对使用属性访问通常很愚蠢。 在很多时候,坚持这一观点的人实际上应该只是在使用字典。

遵循这些原则的主要内置方法是collections.namedtuple

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM