2009-03-18 3 views
3

Поскольку в питоне нет явного ввода текста, я хочу иметь возможность сделать разницу между последовательностями и непоследовательностями, используя соглашение об именах. Я программировал с python на некоторое время, и я до сих пор не нашел логического/практического способа назвать последовательности. Конечно, я прошел через знаменитый PEP8 и сделал некоторые исследования в Google, и кажется, что принятое соглашение состоит в том, чтобы добавить букву «s» в конце имени переменной.Соглашение об именовании последовательности Python

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

Какое соглашение об именах для последовательностей вы бы посоветовали?

+0

Что случилось с «weight_seq» как имя для последовательности весов? –

ответ

20

В общем, избегайте такого поведения. Уведомление от PEP8

Глупая Последовательность является Hobgoblin Маленьких Minds

это именно то, что вызова переменной weightss будет делать. Таким образом, в общем случае ваш переменные описывающее то, что они есть, а не по какому-то именованию:

weights = [44, 66, 88] 
weight_groups = [[44, 66, 88], ...] 

т.д.

Из тех же секций PEP8:

Но самое главного: ноу когда должно быть непоследовательно - иногда стиль руководство просто не применяется. Когда в сомневайтесь, используйте свое лучшее суждение. Посмотрите в других примерах и решите, что выглядит лучше всего. И не стесняйтесь спросить!

+0

Абзац, который начинается с указанной выше цитаты, заканчивается словами «Быть ​​великим - это неправильно понимать». http://www.emersoncentral.com/selfreliance.htm Поэтому великие ответы на SO обречены быть downvoted :) – jfs

+0

Я добавил еще одну цитату из PEP8. Не стесняйтесь отката – jfs

0

Что бы вы ни мало желания сердца ....

Шучу, но я бы не попасть вешали на него. Если это некрасиво, сделать что-то, чтобы сделать его более удобным для чтения, как seq_weight и seq_weights

-1

Почему просто не thing_list или thing_seq?

+0

Моя самая большая причина заключалась в том, что это нечеткая абстракция имени (список - это только один вид последовательности). В противном случае не так уж плохо. весов множественного числа весов, weights_list или weights_group или что-то другое как множественное число весов. –

+0

Это то, с чего я начал, но потом я вернулся к соглашению «s». Проблема в том, что если вы решите перейти от реализации списка к реализации словаря, суффикс «_list» больше не будет соответствовать тому, что внутри. – Manu

+0

Что не так с thing_seq как обобщение thing_list? –

10

"S" именования бы назвать переменную weightss, которая некрасиво. Я уверен, что для последовательностей есть лучшее соглашение об именах.

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

PEP всегда советует вам использовать свой подход, если это более читаемо и полезно. Как Ali mentioned, одним из руководящих принципов PEP является то, что вы не должны становиться жертвой глупых согласований.