[Python] Argomenti funzione posizionali e opzionali

Alessandro Dentella sandro.dentella a gmail.com
Ven 20 Nov 2020 15:53:46 CET


On Fri, Nov 20, 2020 at 03:14:53PM +0100, Valerio Pachera wrote:
> Ciao a tutti, sto definendo una funziona a cui devo passare un valore per
> id o per nome.
> 
> Il mio approccio è stato questo
> 
> def modify_firma(signature_id='', signature_name='', content):
>    if signatrue_id:
>       pass
>     elif signature_name:
>         pass
> 
> Ci sono due problemi: il parametro content è posizionale e va messo prima.
> Questo errore mi ha fatto pensare che devo passare almeno uno dei parametri
> signature_id o signature_name.
> Posso spostare la logica di controllo all'interno della funzione ma mi
> chiedevo quale sia la via migliore per gestire questa situazione.
> 
> L'altra idea è quella di mettere due parametri posizioni, il primo dei
> quali sarà un dizionario.
> 
> def modifiy_signature(reference, content):
>     if 'id' in reference:
>         pass
>     elif 'name' in reference:
>         pass


non mi è chiaro perché non metti content al primo posto::


   def modify_firma(content, signature_id='', signature_name=''):
      ...

Mettere un dizionario mi pare inutilmente complesso in questo caso.


sandro
*:-)



Maggiori informazioni sulla lista Python