ProgrammazionePython Team Lead

Parlate delle convenzioni di denominazione (PEP8 e altro) in Python. Come influisce il mancato rispetto di queste convenzioni sulla pratica lavorativa con il codice? Fornite esempi delle conseguenze reali della violazione di PEP8 nei progetti.

Supera i colloqui con l'assistente IA Hintsage

Risposta.

In Python sono in vigore diverse convenzioni di stile del codice, la principale delle quali è PEP8:

  • Nome delle variabili/funzioni: lower_case_with_underscores
  • Nome delle classi: CapitalizedCamelCase
  • Costanti: ALL_CAPS
  • Lunghezza della riga: fino a 79 caratteri
  • Indentazioni: 4 spazi (niente tabulazioni!)
  • Spazi attorno agli operatori: a = b + c
  • Importazioni: ogni importazione su una riga separata, prima le librerie standard, poi quelle di terze parti, infine quelle locali

Il rispetto di PEP8 facilita il lavoro di squadra, migliora la leggibilità, riduce la soglia di ingresso, semplifica l'automazione dei test e altro ancora.


Domanda trabocchetto.

In PEP8 si raccomanda di non utilizzare nomi di variabili di una sola lettera. È però possibile utilizzare nomi brevi in list comprehensions o in lambda? Perché?

Risposta: Nel caso base per iterazioni brevi (ad esempio, nelle list comprehensions per variabili di segnaposto come x, i, j) è consentito utilizzare nomi di una sola lettera per non appesantire le espressioni brevi. Per espressioni più complesse è meglio dare nomi significativi.

Esempio:

# Consentito: squares = [x**2 for x in numbers] # Meglio: squares = [number**2 for number in numbers]

Esempi di errori reali causati dalla mancata conoscenza delle sottigliezze dell'argomento.


Storia 1

In un progetto bancario ci siamo trovati con funzioni e parametri denominati in tradizioni diverse (CamelCase, snake_case, con trattino). Un nuovo membro del team si confondeva costantemente su dove venivano utilizzati i nomi: ci sono volute quasi due settimane per risolvere le collisioni e rinominare le variabili.


Storia 2

In un progetto di data engineering non si rispettavano le indentazioni, si mescolavano tabulazioni e spazi. Questo portava a SyntaxError su diverse postazioni di sviluppo, e parte degli sviluppatori spendeva ore a cercare spazi in eccesso.


Storia 3

Su un grande portale educativo si sono mescolati nomi di variabili brevi e lunghi. Ad esempio, una funzione per l'elaborazione dei log è stata chiamata l(), e il gestore del login — long, il che in molte IDE ha causato molto tempo per la navigazione e confusione nell'utilizzo della funzione con l'elemento l della lista.