Standardy kodowania w Pythonie/najlepsze praktyki [zamknięte]

W Pythonie czy ogólnie używasz PEP 8 -- Style Guide for Python Code jako swoich standardów/wytycznych kodowania? Czy są jakieś inne sformalizowane standardy, które preferujesz?

Author: Kozyarchuk, 2008-12-10

8 answers

" czy w Pythonie ogólnie używasz PEP 8 -- Style Guide dla kodu Pythona jako standardów/wytycznych kodowania? Czy są jakieś inne sformalizowane standardy, które preferujesz?"

Jak wspomniano przez Ciebie wykonaj PEP 8 dla głównego tekstu i PEP 257 dla konwencji docstring

Wraz z przewodnikami stylu Pythona, sugeruję, abyś odnosił się do następujących rzeczy:

  1. Code Like A Pythonist: Idiomatic Python
  2. Częste błędy i Brodawki
  3. Jak nie pisać kodu w Pythonie
  4. Python gotcha
 145
Author: bhadra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-31 05:28:00

Przestrzegam idiomów Pythona i wytycznych efektywności , autorstwa Roba Knighta. Myślę, że są dokładnie takie same jak PEP 8, ale są bardziej syntetyczne i oparte na przykładach.

Jeśli używasz wxPython, możesz również sprawdzić Style Guide dla kodu wxPython , autorstwa Chrisa Barkera.

 14
Author: Mapad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-24 22:39:18

Trzymam się PEP - 8 bardzo blisko.

Są trzy konkretne rzeczy, których nie mogę zmienić na PEP-8.
  • Unikaj obcych znaków w nawiasach, nawiasach lub klamrach.

    Suggested: spam(ham[1], {eggs: 2})

    I tak to robię: spam( ham[ 1 ], { eggs: 2 } )

    Dlaczego? 30 + lat zakorzenionego nawyku jest snuggling () ' s się przed nazwami funkcji lub (w C) wypowiedzi słowa kluczowe. Na początku lat 70.]}
  • Użyj spacji wokół operatory arytmetyczne:

    Suggested: x = x * 2 - 1

    I tak to robię: x= x * 2 - 1

    Dlaczego? Gries ' The Science of Programming zasugerował to jako sposób na podkreślenie związku między przypisaniem a zmianą stanu zmiennej.

    To nie działa dobrze dla wielu zadań lub zadań rozszerzonych, do tego używam dużo przestrzeni.

  • Dla nazw funkcji, nazw metod i nazw zmiennych instancji

    Suggested: małe litery, ze słowami oddzielone podkreślnikami w razie potrzeby, aby poprawić czytelność.

    I tak to robię: camelCase

    Dlaczego? W 2011 roku Pascal zaczął tworzyć własne wersje języka camelCase.]}
 8
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-26 01:48:44

Aby dodać do bhadra ' S Lista przewodników idiomatycznych:

Checkout Prezentacja Anthony ' ego Baxtera na tematefektywnego programowania w Pythonie (z OSON 2005).

Fragment:

# 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
Author: Ryan Cox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:15

Podążam za nim niezwykle rygorystycznie. Jedynym bogiem przed PEP-8 są istniejące bazy kodu.

 4
Author: Alex Gaynor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-10 14:16:04

PEP 8 jest dobry, jedyne, co chciałbym, żeby było trudniejsze, to Tabs-vs - spaces holy war.

Zasadniczo jeśli rozpoczynasz projekt w Pythonie, musisz wybrać tabulatory lub spacje, a następnie strzelać do wszystkich przestępców na widoku.

 4
Author: Ryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-10 14:45:36

Tak, staram się podążać za nim jak najbliżej.

Nie przestrzegam żadnych innych standardów kodowania.

 2
Author: Oli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-10 14:11:27

Podążam za PEP8, jest to świetny kawałek stylu kodowania.

 1
Author: forhappy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-14 11:55:14