【发布时间】:2015-02-21 23:35:51
【问题描述】:
我编写了一个快速脚本来收集有关综合格斗比赛及其相关赔率的各种数据。
最初,数据是一个元组,第一个条目是战斗机的名称(字符串),第二个条目是他们的赔率(浮点数)。脚本稍后访问了这些数据,我定义了两个常量,FIGHTER = 0 和 ODDS = 1,以便我以后使用fight_data[FIGHTER] 或fight_data[ODDS]。
由于数据是不可变的,所以元组是有意义的,通过定义常量,我的理由是我的 IDE/编辑器可以捕获拼写错误,而不是使用字典的字符串索引。
FIGHTER = 0
ODDS = 1
fight_data = get_data()
def process_data(fight_data):
do_something(fight_data[FIGHTER])
do_something(fight_data[ODDS])
还有哪些其他选择?我想创建一个FightData 类,但数据严格来说是一个包含两个小元素的值对象。
class FightData(object):
fighter = None
odds = None
def __init__(self, fighter, odds):
self.fighter = fighter
self.odds = odds
fight_data = get_data()
def process_data(data):
do_something(fight_data.fighter)
do_something(fight_data.odds)
此外,我意识到我可以使用字典,并拥有fight_data["fighter"],但这对我来说既丑陋又不必要。
这些替代方案中哪一个是最好的?
【问题讨论】:
-
这是一个非常热门的问题还是代码审查请求?
-
不要求代码审查,只是风格方面的问题。
-
这将是 IMO 的代码审查请求。
-
@ViktorChynarov 你有代码给我们看吗?您是否遇到任何性能问题?我真的不知道如何解决这个问题。
-
“Pythonic”——语言和概念上的失望。 (即“我担心我不够 Pythonic。”)以前这个概念只是被称为“惯用的”——并没有那么充满 Pythonic 的自我意识。 :)
标签: python data-structures collections code-cleanup