[英]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.