Nie jestem pewien, czy wybieram nazwy dla moich funkcji w Pythonie . Czasami niezbędne są funkcje wbudowane w Python , takie jak: print
funkcja i metoda łańcuchowa find
. Czasami nie są tacy, jak: len
jego nazwa nie jest niezbędna, jak calculate_len
na przykład i type
nie jest find_type
.
Rozumiem, że print
zwraca wartość, której nie używamy (tj. None
) I robi coś (tj. Pokazuje ciąg znaków na ekranie), więc jej nazwa jest bezwzględna.
Ale len
zwraca wartość, że używamy i robi coś (czyli obliczenie ile przedmiotów istnieją w sekwencji lub mapowania.), A jego nazwa nie jest konieczne . Z drugiej strony find
metoda string (as len
) zwraca wartość, której używamy i robi coś, a jej nazwa jest bezwzględna .
To, co sprawiło, że zadałem to pytanie, polega na tym, że poddałem przeglądowi skrypt, który szyfruje i odszyfrowuje ciąg przy użyciu szyfru Cezara. Recenzent powiedział, że:
Po prostu przeczucie: funkcje robią różne rzeczy. Dobra nazwa funkcji jest więc niezbędna: użyłbym
rotate_letter
zamiastrotated_letter
.
rotated_letter
zwraca ciąg jednoliterowy reprezentujący literę obróconą o liczbę. Nie wiem, co jest lepsze, użyłem, rotated_letter
ponieważ zwraca wartość, jak randint
funkcja w module losowym , nie jest generate_randint
.
Więc w takim przypadku, jak mam nazwać funkcję, która zwraca wartość, która ma być użyta? Powinienem uczynić nazwę imperatywną, czy tylko rzeczownikiem . W innych przypadkach jest oczywiste, jak to zrobić, takie jak funkcje boolowskie , takie jak is_even
i is_palindrome
po prostu sprawiamy, że jest to pytanie typu tak / nie , a także funkcje, które tylko wykonują i zwracają nieużywane wartości (tj. None
), Takie jak print
i metoda list sort
.
len
, na przykład, lepiej jest traktować go jako „długość” - otrzymujesz opis jego argumentu na poziomie meta.