Python 字典/映射/哈希的命名约定
虽然之前有其他问题讨论过关于序列和模块的更广泛的命名规则,但我想问一个非常具体的问题:
“你们在字典命名时用什么规则,为什么?”
我考虑过一些命名规则的例子:
# '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 个回答
11
values_by_key
- 这个名字没有
value_key_map
那么让人困惑:你不会搞混什么是值的名字,什么是键的名字。 - 它没有直接给类型命名——这是一种Python风格的命名方式。
41
key_to_value
,比如说 surname_to_salary
,在代码中当有多个紧密相关的映射时会很有用:比如说a对应b,b又对应a,c又对应b等等。
16
我从来不会像你提到的那样给它们起名字(也就是保持一种方式)。我觉得给哈希表找一个“合适的名字”会更清楚明了。比如可以叫“person_details”(个人信息)或者“file_sizes”(文件大小)或者“album_tracks”(专辑曲目)等等。(虽然最后两个名字看起来像是键值对的名字,第一个名字就没那么明显了)。在少数情况下,如果它是一个映射,我会用 key_value_map
或者 value_key_map
来命名。
我从来不会假设有什么命名规则。有时候你关注的是值,有时候你关注的是键。我更喜欢用“自然的名字”。