Une bonne façon de gérer NoneType objets lors de l'impression en Python
Comment puis-je sur un NoneType objet en Python?
# score can be a NonType object
logging.info("NEW_SCORE : "+score)
Aussi pourquoi est-ce que parfois, je vois une virgule au lieu du + au-dessus?
- Comment puis-je accepter une réponse?
- Il devrait y avoir un creux coche en dessous de la flèche vers le bas - l'utiliser. Aussi, vous devez utiliser la flèche vers le haut pour voter pour les réponses qui vous sont utiles.
Vous devez vous connecter pour publier un commentaire.
La meilleure approche est la suivante:
Dans la plupart des cas, vous auriez à utiliser une
%
opérateur entre la chaîne de format sur la gauche et la valeur(s) sur la droite (dans un tuple, si plus d'un). Mais lelogging
fonctions spéciales: vous passez la chaîne de format comme le premier argument, puis, l'un après l'autre, tout comme de nombreux arguments pour correspondre le nombre de%s
&c mise en forme des marqueurs dans le format, et lalogging
fonctions d'utiliser la mise en forme de l'opérateur%s
comme approprié si et seulement si nécessaire-de sorte que vous n'avez pas à supporter de gestion d'exécution si votre niveau d'enregistrement actuel est tel que, par exemple,logging.info
n'est pas fait va être montré.Oublier
str
appels et+
basé sur la concaténation de chaîne de toute façon, même sanslogging
's specials,%
-mise en forme est vraiment la voie à suivre (en Python 2.6 ou plus tôt; en 2.6 ou version ultérieure, vous devriez également considérer des chaînes de caractères'format
méthode, permettant plus claire et lisible de l'expression de ce qui revient à la même fonctionnalité).La preuve par l'interpréteur Python:
CQFD
logging.info("NEW_SCORE : " + score or "No score")
. Siscore
est pas le cas ou une chaîne vide, alors il sera de journal "NEW_SCORE : Pas de note".Pour imprimer,il vous suffit de str en premier. Une virgule est à imprimer avec un seul espace entre elle..Par exemple:
print "salut les gars","comment allez-vous aujourd'hui"
cette syntaxe de sortie:
salut les gars comment êtes-vous aujourd'hui
mais il sera différent si votre syntaxe comme celle-ci:
print "salut les gars"+"comment allez-vous aujourd'hui"
cette syntaxe de sortie:
hi guyshow êtes-vous aujourd'hui
str
), mais pas dans d'autres contextes.si pas de résultat==None: logging.info("NEW_SCORE : "+score)
ou
logging.info("NEW_SCORE: %s" % str(score) )