D'autres ont expliqué ce que NoneType
et une façon courante de l'obtenir (c'est-à-dire l'impossibilité de retourner une valeur à partir d'une fonction).
Une autre raison courante pour laquelle vous avez None
là où on ne l'attend pas, c'est l'affectation d'une opération in-place sur un objet mutable. Par exemple :
mylist = mylist.sort()
Le site sort()
d'une liste trie la liste in-place, c'est-à-dire, mylist
est modifié. Mais la valeur de retour réelle de la méthode est None
et non la liste triée. Vous venez donc d'affecter None
à mylist
. Si vous essayez ensuite de faire, de dire, mylist.append(1)
Python vous donnera cette erreur.
11 votes
Sortez le plus petit bout de code qui démontre le problème. Affichez ça. Ajoutez
print
(ou déclarations selon la version) pour révéler les valeurs réelles des variables dans le code qui pose problème.1 votes
NoneType' signifie type = None. Vous essayez probablement d'accéder à une variable non déclarée. Vous devriez poster un gist pour que nous puissions vous aider.
2 votes
@LoïcGRENON : "variable non déclarée" ? En Python ? Cela n'a pas beaucoup de sens. Comment déclarer une variable ?
0 votes
En gros, cela signifie que vous avez fait
yourobject = somthing_that_is_None
avant d'appeleryourobject.babyruth
. Peut-êtresomething_that_is_None
est une fonction qui renvoieNone
. Sans le code est impossible de savoir.0 votes
@S.Lott Si la variable n'a pas été définie par une valeur, cette valeur est égale à None.
4 votes
@LoïcGRENON - Ce n'est pas le cas en Python. Vous obtenez une exception "référencé avant l'affectation". Les variables ne sont pas référencées par défaut
None
.