Соглашения об именах Python для словарей / карт / хэшей - PullRequest
37 голосов
/ 09 марта 2010

В то время как другие вопросы касались более широкой категории последовательностей и модулей , я задаю этот очень специфический вопрос:

«Какое соглашение об именах вы используете для словарей и почему?»

Некоторые примеры соглашений об именах, которые я рассматривал:

# '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}

Не пытайтесь ответить на вопрос «почему» словами «потому что моя работа подсказывает мне», не очень полезно. Причина вождения выбора является более важной. Есть ли другие хорошие соображения относительно соглашения об именовании словаря, кроме читабельности?

EDIT:

Выбранный ответ: value_key_map

Причина выбранного ответа: Позволяет рецензенту кода быстро и легко выяснить ключ и значение для карты, а также тот факт, что это карта, не глядя куда-либо еще.

Ответы [ 5 ]

17 голосов
/ 17 марта 2015

key_to_value, например surname_to_salary может быть полезно, когда в коде есть тесно связанные карты: от a до b, от b до a, от c до b и т. Д.

7 голосов
/ 09 марта 2010

Кажется, я никогда не назову их так, как вы предлагали (то есть, придерживались одного способа). Кажется, гораздо яснее найти «правильное имя» для хэша. Это могут быть «person_details» или «file_sizes» или «album_tracks» и т. Д. (Хотя последние два, кажется, имеют имена key_value, первый немного меньше). В редких случаях это будет key_value_map или value_key_map, если важно, чтобы это была карта.

Я бы никогда не предположил никакой схемы именования для этого. Иногда значения - это то, что вам нужно, иногда ключи. Я предпочитаю «естественное имя».

3 голосов
/ 09 марта 2010

Я думаю, что имеет смысл называть dict после значений в dict и отбросить любое упоминание ключа. В конце концов, вы будете использовать dict в таких ситуациях, как values[key], что дает вам полное представление о том, что это за ключи, при условии, что вы назвали key хорошо.

2 голосов
/ 09 марта 2010

Я обычно использую map, поскольку обычно это карта, такая как строки для функций, числа для классов или еще много чего. Безымянные диктовки обычно оказываются в более крупной структуре, поэтому я не беспокоюсь о них.

0 голосов
/ 03 августа 2017

В наших проектах мы приняли следующую конвенцию:

  • key_to_value_map когда это карта
  • aname_dict для более крупной и сложной структуры.
...