Nie jestem pewien, czy wybieram nazwy dla moich funkcji w Pythonie . Czasami niezbędne są funkcje wbudowane w Python , takie jak: printfunkcja i metoda łańcuchowa find. Czasami nie są tacy, jak: lenjego nazwa nie jest niezbędna, jak calculate_lenna przykład i typenie jest find_type.
Rozumiem, że printzwraca 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 lenzwraca 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 findmetoda 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_letterzamiastrotated_letter.
rotated_letterzwraca ciąg jednoliterowy reprezentujący literę obróconą o liczbę. Nie wiem, co jest lepsze, użyłem, rotated_letterponieważ zwraca wartość, jak randintfunkcja 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_eveni is_palindromepo 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 printi metoda list sort.
len, na przykład, lepiej jest traktować go jako „długość” - otrzymujesz opis jego argumentu na poziomie meta.