2015-09-16 9 views
13

C'è un modo per dichiarare una variabile come non usata in PyCharm, o in Python in generale, così puoi dire esplicitamente al compilatore di non dare un avvertimento su di esso?Variabile esplicita come inutilizzata in Python/PyCharm

Non sto parlando della convenzione di denominare le variabili inutilizzate per il programmatore (spesso denominate "_" o "__"), ma un'opzione per contrassegnare esplicitamente una variabile come non utilizzata per il compilatore, ad esempio in un ciclo. Inoltre, non voglio semplicemente disabilitare le ispezioni in generale.

Ho sentito che è possibile farlo in PyDev iniziando il nome della variabile con "inutilizzato", e ho pensato che potesse esistere anche in PyCharm, ma non riuscivo ancora a trovarlo.

+0

È possibile sopprimere un'ispezione per una dichiarazione. Python in generale non avvisa. Ma per PyLint puoi [disabilitare gli avvisi] (http://stackoverflow.com/questions/4341746/how-do-i-disable-a-pylint-warning) usando un commento. –

risposta

9

È possibile disattivare questo controllo sia per una singola dichiarazione come:

# noinspection PyUnusedLocal 
unused_thing = something() 

o per un intero funzione (o classe) posizionando il commento di cui sopra la funzione (o classe):

# noinspection PyUnusedLocal 
def foo(): 
    unused_thing = something() 

Per qualche motivo questa ispezione particolare non può essere disattivata tramite il menu contestuale delle ispezioni ... forse vale un biglietto pycharm.

3

Ho notato che l'utilizzo di un singolo carattere di sottolineatura per il nome della variabile throwaway sembra ignorare questo controllo. Sto usando PyCharm 2016.1.3.

for _ in range(3): 
    pass 
+0

Buono anche per il puntatore. – Rafe

+0

PyCharm sembra riconoscere anche il doppio trattino di sottolineatura '__', ad es. 'per _, __ in my_dict.items()' –

1

Un altro modo, simile a UNUSED in C++ (here), che funziona se si desidera nascondere l'avviso su un parametro funzione specifica, ma mantiene l'avviso attivato per il resto della funzione:

# noinspection PyUnusedLocal 
def UNUSED(*args, **kwargs): 
    pass 

def my_function(alpha, beta, gamma): 
    UNUSED(gamma) 
    return alpha + beta