我正在寻找一种联系方式:
"Option one"
甚至u'Première option'
OPTION_ONE
鉴于:
0
作为基本索引除外)。当然,这是为了使代码看起来更干净,因此需要简洁的结构。这应该使用标准库在Python 2.7中运行。
答案 0 :(得分:1)
使用namedtuple的解决方案:
首先定义一个小函数
from collections import namedtuple
def createOpts(name,pairs):
# namedtuple('FooType',['OPTION1',...,'OPTIONn','labels']
optsclass=namedtuple(name+'Type',[symbol for symbol,label in pairs]+['labels'])
# FooType(0,..,n-1,['Option 1',...,'Option N'])
opts=optsclass(*(range(len(pairs))+[[label for symbol,label in pairs]]))
return opts
列表,如果选项是这样定义的
Options=createOpts('Opt',[('OPTION1','Option one'),('OPTION2','Options two'),('OPTION3','Option three'),])
然后在代码中按如下方式使用它。
print type(Options)
print 'Option labels:',Options.labels
print 'Option one:',Options.OPTION1
print 'Option two compares to 1:',1==Options.OPTION2
print 'Option 2 in set:', 1 in [Options.OPTION2,Options.OPTION3]
print 'Option 1 not in set:', 0 not in [Options.OPTION2,Options.OPTION3]
<class '__main__.OptType'>
Option labels: ['Option one', 'Options two', 'Option three']
Option one: 0
Option two compares to 1: True
Option 2 in set: True
Option 1 not in set: True