字典/地图/哈希的Python命名约定

时间:2010-03-09 00:58:39

标签: python dictionary naming-conventions mapping

虽然其他问题已经涉及更广泛的sequencesmodules类别,但我提出这个非常具体的问题:

“您为词典使用了哪些命名约定?为什么?”

我一直在考虑的一些命名约定样本:

# 'value' is the data type stored in the map, while 'key' is the type of key
value_for_key={key1:value1, key2,value2}
value_key={key1:value1, key2,value2}
v_value_k_key={key1:value1, key2,value2}

不要因为“因为我的工作告诉我”而回答“为什么”,而不是非常有帮助。推动选择的原因更为重要。除了可读性之外,字典命名约定还有其他好的考虑因素吗?

修改

选择回答: value_key_map

选择答案的原因:允许代码审核人员快速轻松地找出地图的关键字和值,以及它是一张地图而无需查看其他地方。

7 个答案:

答案 0 :(得分:17)

key_to_value,例如surname_to_salary在代码中存在密切相关的地图时可能很有用:a到b,b到a,c到b等。

答案 1 :(得分:7)

我似乎从来没有像你提出的那样命名(即保持一种方式)。当我能找到哈希的“专有名称”时,它似乎更加清晰。它可能是“person_details”或“file_sizes”或“album_tracks”等(尽管最后2个似乎有key_value名称,第一个稍微少一点)。在极少数情况下,如果重要的是地图,则为key_value_mapvalue_key_map

我永远不会假设任何命名方案。有时价值是你所追求的,有时是关键。我的偏好是“自然名称”。

答案 2 :(得分:3)

我认为在dict中的值之后命名dict是有意义的,并删除任何提到的键。毕竟,你将在values[key]这样的情况下使用dict,这样就可以很清楚键是什么,假设你将key命名为。{/ p>

答案 3 :(得分:2)

我通常使用< something> map,因为它通常是一个地图,例如函数的字符串,或类的数字,或诸如此类的东西。未命名的dicts通常以更大的结构结束,所以我不担心它们。

答案 4 :(得分:2)

我将与到目前为止的许多答案(包括所选答案)进行对比,然后说:

我避免在变量名中添加诸如dictmap之类的类型引用。在我看来,这太像匈牙利符号了,感觉非常反Python。

回答我确实使用的问题:

我使用valuesvalues_by_keyvalues_for_key形式的名称,以最自然的形式阅读。

答案 5 :(得分:0)

在我们的项目中,我们采用了以下惯例:

  • key_to_value_map当它是地图时
  • aname_dict用于更大更复杂的结构。

答案 6 :(得分:0)

values_by_key 1.它不像value_key_map那样令人困惑:您不能混淆什么是值名称和什么是键名称 2.它不会直接命名类型-python样式命名