Соглашение об именовании переменных Python - PullRequest
9 голосов
/ 03 января 2012

Итак, я пытаюсь переключиться на нотацию PEP8 (с довольно личной нотации CamelCase), и мне было интересно, как вы, ребята, решаете случаи, когда существующие функции / переменные будут перезаписаны?

например. имея что-то вроде:

open, high, low, close, sum = row

уже перезапишет функции "open" и "sum". Во-первых, если бы я не использовал хорошую IDE, я бы даже не заметил, что я просто переписал важные базовые функции. Во-вторых, как бы вы назвали переменные вместо этого? В этом примере я использовал бы венгерские приложения и не столкнулся бы ни с какой потенциальной проблемой вообще.

Спасибо!

Ответы [ 5 ]

9 голосов
/ 04 января 2012

Почему бы просто не выбрать не конфликтующие имена? Например, opening_price, closing_price и total, если это то, что они представляют. Хотя можно определить пространство имен, как и в других ответах, конечно, это не должно быть необходимо для локальных переменных. На каком бы языке вы ни программировали, ваша работа - знать зарезервированные слова; их не так много.

8 голосов
/ 03 января 2012

Я бы использовал open_ и sum_.

5 голосов
/ 03 января 2012

В этом конкретном случае я бы использовал namedtuple.Это превратит эти имена в подходящие (data.open, data.low и т.по пути.

3 голосов
/ 03 января 2012

Если все они являются значениями из одного домена, вы можете использовать словарь:

params = ('open', 'high', 'low', 'close', 'sum') # defined once

val = dict(zip(params, row)) # for each row

# val == {'open': 12, 'high': 34, 'low': 56, 'close': 78, 'sum': 90}

Тогда вы можете получить к ним прямой доступ: val['open']. Вы можете перебирать их val.iteritems() и т. Д.

0 голосов
/ 10 февраля 2018

Pep8 рекомендует использовать конечное подчеркивание, однако также упоминается, что в возможных случаях лучше использовать синоним слова для переменной.

...