J'ai une méthode qui retourne parfois une valeur NoneType. Alors, comment puis-je interroger une variable qui est un NoneType? J'ai besoin d'utiliserifméthode, par exemple
if not new:
new = '#'
Je sais que ce n'est pas la bonne façon et j'espère que vous comprenez ce que je voulais dire.
Alors, comment puis-je interroger une variable qui est un NoneType?
Utilisez l'opérateur is
, comme ceci
if variable is None:
Pourquoi ça marche?
Puisque None
est le seul objet singleton de NoneType
en Python, nous pouvons utiliser l'opérateur is
pour vérifier si une variable contient ou non None
.
Citant de is
docs ,
Les opérateurs
is
etis not
testent l'identité de l'objet:x is y
est vrai si et seulement six
ety
sont le même objet.x is not y
renvoie la valeur de vérité inverse.
Puisqu'il ne peut y avoir qu'une seule instance de None
, is
serait le moyen privilégié de vérifier None
.
Écoutez-le de la bouche du cheval
Citations Lignes directrices de Python en matière de style de codage - PEP-008 (définies conjointement par Guido lui-même),
Les comparaisons avec des singletons comme
None
DOIVENT TOUJOURS ÊTRE EFFECTUÉES AVECis
OUis not
, jamais les opérateurs d'égalité.
if variable is None:
...
if variable is not None:
...
Python 2.7:
x = None
isinstance(x, type(None))
ou
isinstance(None, type(None))
==> vrai
Je ne sais pas si cela répond à la question. Mais je sais que cela m'a pris un certain temps à comprendre. Je parcourais un site Web et tout d'un coup, le nom des auteurs n'y était plus. Donc besoin d'une déclaration de contrôle.
if type(author) == type(None):
my if body
else:
my else body
Author peut être n'importe quelle variable dans ce cas, et None
peut être n'importe quel type que vous recherchez.
J'espère que cet exemple vous sera utile)
print(type(None) # NoneType
Donc, vous pouvez vérifier le type du nom de la variable
#Example
name = 12 # name = None
if type(name) != type(None):
print(name)
else:
print("Can't find name")