2014-04-04 8 views
9

Quando avere una funzione in Python che restituisce un paio di variabili, ad esempio:Come posso soddisfare la regola Variabile inutilizzata da PEP8 se non ho bisogno di una variabile restituita da una funzione?

row, column = search_in_table(table_name, search_for) 

A volte è solo bisogno di utilizzare una delle variabili restituiti dalla funzione. Ma quando ciò accade, la linea è contrassegnata con un avviso PEP8 Unused Variable.

Come posso gestire questa situazione in modo da poter rispettare tutte le regole PEP8?

risposta

15

Beh, a seconda dei gusti, si può fare una delle due cose:

  1. seguire la convenzione di Python per le variabili non utilizzate e sostituire ogni uno con un carattere di sottolineatura:

    # We only need row 
    row, _ = search_in_table(table_name, search_for) 
    

    o :

    # We only need column 
    _, column = search_in_table(table_name, search_for) 
    
  2. Indice del valore di ritorno della funzione:

    row = search_in_table(table_name, search_for)[0] 
    

    o:

    column = search_in_table(table_name, search_for)[1] 
    

    Quest'ultima soluzione funziona perché, tecnicamente, funzioni Python non possono restituire più di un valore. Al contrario, possono restituire una tupla di valori:

    >>> def func(): 
    ...  # This is equivalent to: return (1, 2) 
    ...  return 1, 2 
    ... 
    >>> func() 
    (1, 2) 
    >>> type(func()) 
    <class 'tuple'> 
    >>> a,b = func() 
    >>> a 
    1 
    >>> b 
    2 
    >>> a = func()[0] 
    >>> a 
    1 
    >>> b = func()[1] 
    >>> b 
    2 
    >>> 
    
Problemi correlati