Python, кодирующий [закрытые] стандарты/лучшие практики

У Python есть языковая функция, называемая List Consrehensions , которая идеально подходит для упрощения такого рода вещей. Следующий оператор делает именно то, что вы хотите, и сохраняет результат в l3:

l3 = [x for x in l1 if x not in l2]

l3 будет содержать [1, 6].

Надеюсь, что это поможет!

116
задан Kozyarchuk 10 December 2008 в 14:10
поделиться

7 ответов

"В Python Вы обычно используете PEP 8 - Руководство по стилю для Кода Python как Ваши стандарты/инструкции кодирования? Там кто-либо другой - формализованные стандарты, которые Вы предпочитаете?"

, Как упомянуто Вами следуют PEP 8 для основного текста, и PEP 257 для docstring соглашений

Наряду с Руководствами по стилю Python, я предлагаю, чтобы Вы отослали следующее:

  1. Код Как Pythonista: Идиоматические Частые ошибки Python
  2. и Бородавки
  3. , Как не записать код Python
  4. глюк Python
148
ответ дан yegor256 5 November 2019 в 09:01
поделиться

Я следую Идиомы Python и Эффективность инструкции Rob Knight. Я думаю, что они - точно то же как PEP 8, но являются большим количеством синтетического продукта и на основе примеров.

при использовании wxPython Вы могли бы также хотеть проверить Руководство по стилю на код wxPython , Chris Barker, также.

14
ответ дан SaiyanGirl 5 November 2019 в 09:01
поделиться

PEP 8 хорош, единственная вещь, что мне жаль, что это не снизилось тяжелее на, была священная война Вкладок по сравнению с пробелами.

В основном при запуске проекта в Python необходимо выбрать Tabs или Spaces и затем стрелять во всех преступников на виде.

5
ответ дан Ryan 5 November 2019 в 09:01
поделиться

Добавить к bhadra's список из идиоматических руководств:

представление Checkout Anthony Baxter Эффективное Программирование Python (с 2005 OSON).

выборка:

# dict's setdefault method turns this:
if key in dictobj:
    dictobj[key].append(val)
else:
    dictobj[key] = [val]
# into this:
dictobj.setdefault(key,[]).append(val)
5
ответ дан Community 5 November 2019 в 09:01
поделиться

Я следую за ним чрезвычайно строго. Единственный бог перед PEP-8 является существующими кодовыми базами.

4
ответ дан Alex Gaynor 5 November 2019 в 09:01
поделиться

Да, я пытаюсь следовать за ним максимально тесно.

я не следую никаким другим стандартам кодирования.

2
ответ дан Oli 5 November 2019 в 09:01
поделиться

Я придерживаюсь PEP-8 очень тесно.

Существует три определенных вещи, которые я не могу быть побеспокоен для изменения на PEP-8.

  • Избегайте постороннего пробела сразу в круглых скобках, скобках или фигурных скобках.

    Предложенный: spam(ham[1], {eggs: 2})

    Я делаю это так или иначе: spam( ham[ 1 ], { eggs: 2 } )

    Почему? 30 + годы укоренившейся привычки прижимается () против имен функций или (в C) ключевые слова операторов. Запуск с Фортрана IV в 70-х.

  • Использование располагает с интервалами вокруг арифметических операторов:

    Предложенный: x = x * 2 - 1

    Я делаю это так или иначе: x= x * 2 - 1

    Почему? Gries Наука о Программировании, предложенном это как способ подчеркнуть соединение между присвоением и переменной, кто состояние, изменяется.

    Это не работает хорошо на несколько присвоение или увеличенное присвоение, на это я использую много пробелов.

  • Для имен функций, имен методов и имен переменной экземпляра

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

    Я делаю это так или иначе: Camel-регистр

    Почему? 20 + годы укоренившейся привычки к Camel-регистру, начиная с Паскаля в 80-х.

8
ответ дан S.Lott 24 November 2019 в 02:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: