IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Conversion NoneType en int


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 26
    Par défaut Conversion NoneType en int
    Bonjour à tous,

    Je souhaite transformer le résultat d'une fonction en int pour pouvoir m'en servir dans un calcul.
    Voici ma fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def get_printer_info(oid):
       printer = netsnmp.Varbind(oid)
       result = netsnmp.snmpget(printer, Version=version, DestHost=hostname, Community=community, SecName=snmpv3_user, SecLevel=snmpv3_level, AuthProto=snmpv3_auth, AuthPass=snmpv3_auth_pass)
       printerList = list(result)
       print type(printerList)
       return printerList[0]
    Voici comment je souhaite l'utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    page_duplex = int(get_printer_info(oid_duplex_sheets_xerox)) * 2
    Et voilà l'erreur que je reçois après l'exécution de mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "./lpo_printer_total_page.py", line 72, in <module>
        page_duplex = int(get_printer_info(oid_duplex_sheets_xerox)) * 2
    TypeError: int() argument must be a string or a number, not 'NoneType'
    Si vous avez une idée, je suis preneuse!

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Par défaut
    Bonjour

    Dans un cas comme ça, la première chose à te demander est "est-ce bien normal que get_printer_info retourne None.

    Si la réponse est non, le problème est en amont ou bien dans la façon dont tu l'utilise.

    Si la réponse est oui. Alors il faut tester la valeur de retour ou faire un bloc try... except (la première solution est préférable)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    page_duplex = get_printer_info(oid_duplex_sheets_xerox)
    if page_duplex is not None:
        page_duplex = int(page_duplex)*2
    else:
        "Mettre une valeur par défaut"
        page_duplex = 1 # Par exemple

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 26
    Par défaut
    Merci beaucoup, tu m'as guidé sur la bonne voie!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Par défaut
    Ou plus simplement un "or".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    page_duplex = int(page_duplex or 0)*2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion comboBox en int
    Par Beuuun dans le forum MFC
    Réponses: 2
    Dernier message: 09/03/2006, 13h59
  2. probleme de conversion float en int
    Par murreya dans le forum C++
    Réponses: 2
    Dernier message: 17/12/2005, 15h27
  3. Conversion float vers int
    Par vargasvan dans le forum C
    Réponses: 2
    Dernier message: 05/10/2005, 17h29
  4. Conversion VARCHAR vers INT
    Par Slash dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/05/2005, 10h43
  5. [FLASH MX 2004] conversion string en int.
    Par calfater dans le forum Flash
    Réponses: 3
    Dernier message: 26/05/2004, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo