【发布时间】:2018-01-11 06:51:44
【问题描述】:
是否可以在 python 中让字符串参数指向脚本中定义的对象?
例如,假设我们的参数是 -layers,我有一个名为 convloop 的列表在脚本中定义为
convloop = ['conv2/3x3', 'conv2/3x3_reduce', 'conv2/3x3']
我通过'python example.py -layers convloop'
我需要它获取 arg 字符串(convloop)并指向实际的 convloop 列表(数组),而不仅仅是字符串 'convloop'
我知道我能做到
if args.layers == 'convloop':
#loop over layers as set in convloop array
endparam = convloop[frame_i % len(convloop)]
如果 argstring 是 'convloop',这将调用列表(数组)'convloop' 并循环浏览列表
但是我的脚本中有多个列表,而不是每次为每个列表重写此代码,我希望它读取 argstring 并指向匹配的列表对象,以便我可以传递例如:
'python example.py -layers pooploop' 和 'python example.py' -layers fartloop' 并让它们相应地指向 pooploop 和 fartloop 列表
我正在使用 python 2.7 顺便说一句
【问题讨论】:
-
为什么不直接使用数组字典呢?然后你可以做
my_loop = loop_for[args.layers]。 -
把你的数据放在变量名之外。如果你想做这样的事情,你应该把你的列表放入一个字典中,使用所需的列表名称作为它的键。
标签: python string object arguments call