Estou confuso sobre a escolha de nomes para minhas funções em Python . Às vezes, as funções internas do Python são imperativas , como: printfunction e método de string find. Às vezes, eles não são assim: lenseu nome não é imperativo como calculate_len, por exemplo, e typenão é find_type.
Eu posso entender que printretorna um valor que não usamos (ou seja None) e faz alguma coisa (ou seja, mostra uma string na tela), por isso seu nome é imperativo.
Mas lenretorna um valor que usamos e faz alguma coisa (ou seja, calcular quantos itens existem em uma sequência ou um mapeamento.) E seu nome não é obrigatório . Por outro lado, o findmétodo string (as len) retorna um valor que usamos e fazemos algo, e seu nome é imperativo .
O que fez essa pergunta é que eu coloquei um script que criptografa e descriptografa a string usando a cifra de César para ser revisado. O revisor disse que:
Apenas um pressentimento: funções fazem coisas. Portanto, um bom nome para uma função é um imperativo: eu usaria em
rotate_lettervez derotated_letter.
rotated_letterretorna uma sequência de uma letra representando uma letra girada por um número. Eu não sei o que é melhor, usei rotated_lettercomo ele retorna um valor, como randintfunção no módulo aleatório , não é generate_randint.
Portanto, neste caso, como devo nomear uma função que retorna um valor a ser usado? Devo tornar o nome imperativo ou apenas um substantivo . Em outros casos, é óbvio como fazê-lo, como funções booleanas , como is_evene is_palindromeapenas fazemos uma pergunta sim / não , e também funções que apenas fazem e retornam valores não utilizados (ou seja None), como printmétodo list sort.
len, por exemplo, é melhor pensado como "comprimento de" - você está obtendo uma descrição em nível meta do argumento.