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: print
function e método de string find
. Às vezes, eles não são assim: len
seu nome não é imperativo como calculate_len
, por exemplo, e type
não é find_type
.
Eu posso entender que print
retorna 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 len
retorna 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 find
mé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_letter
vez derotated_letter
.
rotated_letter
retorna uma sequência de uma letra representando uma letra girada por um número. Eu não sei o que é melhor, usei rotated_letter
como ele retorna um valor, como randint
funçã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_even
e is_palindrome
apenas fazemos uma pergunta sim / não , e também funções que apenas fazem e retornam valores não utilizados (ou seja None
), como print
método list sort
.
len
, por exemplo, é melhor pensado como "comprimento de" - você está obtendo uma descrição em nível meta do argumento.