Come denominare le variabili che si scontrano con le funzioni?

1

Ad esempio, in Python ho una funzione lowest_prime_factor che fa esattamente quello che dice. Quindi, in un'altra funzione, devo chiamare questa funzione e memorizzarla. In un altro linguaggio in cui variabili e funzioni possono condividere nomi, farei semplicemente lowest_prime_factor = lowest_prime_factor(n) . In Python, però, questo effettivamente ridefinisce lowest_prime_factor in modo tale che non è più una funzione (il che è problematico dato che ho bisogno di richiamarlo di nuovo diverse righe più tardi).

Quindi ho bisogno di nominare la variabile qualcos'altro - ma che altro c'è che intuitivamente dice "questa variabile contiene il fattore primo più basso"? Questo è il caso in cui l'involucro diverso potrebbe tornare utile, cioè avviare le funzioni con lettere maiuscole, ma sembra che Python più di ogni altro linguaggio abbia una convenzione di denominazione molto "fissa" / ben definita, il che significa che probabilmente non dovrei farlo.

    
posta clb 21.08.2016 - 01:08
fonte

2 risposte

5

Uno stile di codifica molto comunemente usato (e uno che è ampiamente indipendente dal linguaggio) è che le variabili sono nomi e le funzioni sono verbi , poiché sono le funzioni che effettivamente fanno cose. Pertanto, è molto improbabile che i nomi di variabili e funzioni entrino in conflitto.

Perché questa è una buona idea? I nomi di funzioni che sono i verbi sono molto più auto-documentanti: non è immediatamente evidente ciò che fa lowest_prime_factor(n) - probabilmente calcola il fattore primo più basso di n , ma forse no, o forse stampa il fattore anche. Se si chiama get_lowest_prime_factor , tutto è molto più chiaro.

    
risposta data 21.08.2016 - 08:59
fonte
1

Bene, ecco alcune idee.

  • Rinomina la funzione in get_lowest_prime_factor , find_lowest_prime_factor o calculate_lowest_prime_factor .
  • Rinominare arbitrariamente uno o l'altro a smallest_prime_factor . (D'altra parte, usare le parole "più basso" e "più piccolo" per la stessa cosa è incoerente, e la coerenza è buona.)
  • Rinomina la variabile in qualcosa di più lungo, come the_lowest_prime_factor o forse lowest_prime_factor_n .
  • Rinomina la variabile in qualcosa di più breve, come factor o lpf .
  • Determina perché questa variabile deve contenere il fattore primo più basso e nominarla dopo tale motivo. Forse stai usando questa variabile per dividere l'input in parti uguali; in tal caso, chiamalo piece_size .
  • Se utilizzi la variabile solo in un punto, elimina semplicemente la variabile e utilizza direttamente la chiamata di funzione lowest_prime_factor(n) .
risposta data 21.08.2016 - 07:54
fonte

Leggi altre domande sui tag