Ritorno NoneType inaspettato ?!

di il
3 risposte

Ritorno NoneType inaspettato ?!

Buongiorno a tutti, vado con ordine.

Ho definito una funzione semplice
def somma(a, b):
    c = a + b
che mi restituisce
>>> somma(5,4) #non stampa nulla
>>> print(somma(5, 4))#stampa None
None
perché non ho definito cosa ritornare, e fin qui ci sono! Mi becco il None e vado a casa!

Ma in questo caso
def somma(a, b):
    c = a + b
    return c
con il return richiamato nella funzione che restituisce un valore (c), se chiedo a python il type mi restituisce
>>> type(somma(5, 4))
<class 'int'> #nel primo caso
>>> type(print(somma(5, 4)))
9
<class 'NoneType'>#nel secondo caso
cosa è che mi sto perdendo? Il valore ritornato dalla funzione somma non è sempre int, che io la chiami con o senza la funzione di stampa?

3 Risposte

  • Re: Ritorno NoneType inaspettato ?!

    Nel secondo caso stai facendo il type di print.
  • Re: Ritorno NoneType inaspettato ?!

    SuperQWE ha scritto:


    Nel secondo caso stai facendo il type di print.
    E la NoneType non comprende solo il valore None? La funzione print ritorna il valore della funzione, o sbaglio?
  • Re: Ritorno NoneType inaspettato ?!

    NoneType è il tipo di None, non ne sono sicuro ma creso che sia l'unico ad averlo.

    print stampa a video il "valore" che ritorna l'oggetto che gli viene passato, non ritorna alcun valore, ovvero ritorna None.
Devi accedere o registrarti per scrivere nel forum
3 risposte