Sono confuso sulla scelta dei nomi per le mie funzioni in Python . A volte le funzioni integrate di Python sono indispensabili come: print
funzione e metodo stringa find
. A volte non sono come: il len
suo nome non è un imperativo come calculate_len
, ad esempio, e type
non lo è find_type
.
Posso capire che print
restituisce un valore che non usiamo (cioè None
) e fa qualcosa (cioè mostra una stringa sullo schermo), quindi il suo nome è imperativo.
Ma len
restituisce un valore che usiamo e fa qualcosa (cioè calcolando quanti elementi ci sono in una sequenza o in una mappatura) e il suo nome non è indispensabile . D'altra parte, il find
metodo string (as len
) restituisce un valore che usiamo e fa qualcosa, e il suo nome è indispensabile .
Ciò che ha fatto questa domanda è che ho messo uno script che crittografa e decrittografa la stringa usando il codice Caesar per essere rivisto. Il recensore ha affermato che:
Solo un istinto: le funzioni fanno cose. Quindi un buon nome per una funzione è un imperativo: userei
rotate_letter
invece dirotated_letter
.
rotated_letter
restituisce una stringa di una sola lettera che rappresenta una lettera ruotata di un numero. Non so cosa sia meglio, l'ho usato rotated_letter
in quanto restituisce un valore, come la randint
funzione nel modulo casuale , non lo è generate_randint
.
Quindi, in questo caso, come dovrei nominare una funzione che restituisce un valore da usare? Dovrei rendere il nome imperativo o solo un nome . In altri casi è ovvio come farlo, come funzioni booleane , come is_even
e lo is_palindrome
facciamo solo come una domanda sì / no , e anche funzioni che fanno e restituiscono valori non usati (ad es. None
), Come il print
metodo e list sort
.
len
, ad esempio, è meglio pensarlo come "lunghezza di" - stai ottenendo una descrizione a livello di livello del suo argomento.