2012-02-24 96 views
0

IM美其名曰鍵的陣列,因爲如果我知道他們叫我能找到自己的答案= - )創建蟒蛇鍵陣列

確定,例如:

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 

這些叫什麼,我在哪裏可以找到一些關於如何創建和使用它們的文檔? ,做一些非常相似

回答

1

一個POSS是包裝的字典中的對象參見下面的類定義:

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

一類是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

如果您在交互終端做help(options),你會看到這是一個optparse.Values實例。這不是爲了製作你自己的東西,真的。

對鍵值對使用屬性訪問通常很愚蠢。很多時候堅持使用它的人應該只是使用字典。

沿着這些方向行事的主要內置方式是collections.namedtuple