W Pythonie obowiązuje szereg konwencji stylu kodu, z których podstawową jest PEP8:
a = b + cPrzestrzeganie PEP8 ułatwia pracę zespołową, zwiększa czytelność, obniża próg wejścia, ułatwia automatyzację testowania itd.
W PEP8 zaleca się unikanie jedletterowych nazw zmiennych. Czy jednak można używać krótkich nazw w list comprehensions lub w lambdach? Dlaczego?
Odpowiedź: W podstawowym przypadku dla krótkich iteracji (np. w list comprehensions dla zmiennych oznaczających, takich jak x, i, j) dopuszcza się użycie jedletterowych nazw, aby nie zagracać krótkich wyrażeń. W przypadku bardziej złożonych wyrażeń lepiej jest nadawać sensowne nazwy.
Przykład:
# Dopuszczalne: squares = [x**2 for x in numbers] # Lepiej: squares = [number**2 for number in numbers]
Historia 1
W projekcie bankowym natrafiono na sytuację, w której część funkcji i parametrów była nazwana w różnych tradycjach (CamelCase, snake_case, przez myślnik). Nowy członek zespołu ciągle się mylił, gdzie dokładnie używane są nazwy — prawie dwie tygodnie zajęło usuwanie kolizji i zmiana nazw zmiennych.
Historia 2
W projekcie inżynieryjnym danych nie przestrzegano wcięć, mieszano tabulatory i spacje. Powodowało to błędy składni (SyntaxError) na różnych stacjach deweloperskich, a część programistów spędzała godziny na szukaniu zbędnych spacjal.
Historia 3
Na dużym portalu edukacyjnym pomieszano krótkie i długie nazwy zmiennych. Na przykład funkcję do przetwarzania logów nazwano l(), a obsługę logowania — long, co w wielu IDE zajmowało dużo czasu na nawigację i spowodowało zamieszanie w używaniu funkcji z elementem l z listy.