【发布时间】:2016-04-29 04:13:01
【问题描述】:
我有几个运输品牌,我想为每个品牌指定所有可用的 模型以及默认模型。
所以我首先这样定义元组:
SUZUKI = ('model_1', 'model_2', 'model_3')
FERRARI = ('model_1', 'model_2')
# etc
我想为每个品牌指定一个默认型号。问题是有这么多品牌, 为它们中的每一个定义一个默认变量会很乏味:
SUZUKI_DEFAULT = 'model_1'
FERRARI_DEFAULT = 'model_2'
# etc
等等。所以我想知道什么是解决这个问题的好方法,而不是太破旧的解决方案。 为每个品牌创建一个类可能会浪费资源,因为我不需要更多 附加参数或函数。
我想过做这样的事情,将默认值放在元组的末尾, 然后指定默认值的位置:
DEFAULT_POSITION = -1
SUZUKI = ('model_1', 'model_2', 'model_3', 'model_1')
FERRARI = ('model_1', 'model_2', 'default_model')
PORSCH = ('model_1', 'model_2', None)
# etc
然后我会做一个检查语句,例如:
if arg not in SUZUKI:
arg = SUZUKI[DEFAULT_POSITION]
我的问题是,这是一种不好的做法,如果没有更好的解决方案,是否还有其他解决方案?
【问题讨论】:
-
有什么特殊原因不能将默认值作为每个元素的第一个元素吗?您是否出于某种原因需要不同的订单?
-
完全没有,这就是为什么我放置
DEFAULT_POSITION变量以获得更多可见性的原因。也许它实际上没用我不知道:) -
能否向我解释被否决的投票,以便我提示改进的地方?
标签: python python-2.7 tuples default-value