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 :

Différence Python 2.X / 3.X [Python 3.X]


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pologne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 26
    Points : 28
    Points
    28
    Par défaut Différence Python 2.X / 3.X
    Bonjour,

    Tout d'abord, toutes mes excuses de poser une question aussi bête, je suis encore débutant....
    J'avoue ne pas très bien comprendre pourquoi le code ci-dessous fonctionne sur 2.7 et pas sur 3.4 (je parle uniquement de la fonction "print":

    for i in args.keys():
    #print("i: %s, attr: %s") % (i, getattr(object, i))
    if getattr(object, i) != args[i]: break

    La version 3.4 me renvoie une erreur de type de données, pourtant et la variable i et l'attribut objet.i sont de type "string"....
    Quelqu'un aurait une idée svp ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Python3 retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> print("i: %s, attr: %s") % ('aa', 'bb')
    i: %s, attr: %s
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
    >>>
    car avec cette version "print" est devenu "fonction" i.e. les () appellent la fonction et print("i: %s, attr: %s") retourne None.
    En Python2 vous auriez pu écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> print "i: %s, attr: %s" % ('aa', 'bb')
    i: aa, attr: bb
    >>>
    Les parenthèses ne servent pas (dans ce cas là).

    Il vous suffit de remettre les parenthèses là ou il faut.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pologne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 26
    Points : 28
    Points
    28
    Par défaut Exact !
    Que c'était simple ! En effet avec:

    print("i: %s, attr: %s" % ('aa', 'bb'))

    ça marche sans problème. Et moi qui était parti chercher du côté de l'implémentation de la fonction getattr, j'étais complètement à côté de la plaque... Merci !

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

Discussions similaires

  1. extraire les différences entre deux fichiers xml en python
    Par princessita dans le forum Général Python
    Réponses: 4
    Dernier message: 17/02/2014, 00h09
  2. [Python] Différence entre raw_input et input
    Par JohnAnto dans le forum Général Python
    Réponses: 1
    Dernier message: 31/10/2012, 22h13
  3. différence python - zope - plone ?
    Par okoweb dans le forum Général Python
    Réponses: 2
    Dernier message: 01/08/2011, 10h34
  4. Différences entre Python 2.5, 2.6 et 2.7 ?
    Par Ggamer dans le forum Général Python
    Réponses: 1
    Dernier message: 24/10/2010, 21h13
  5. regex : différence entre Perl et Python
    Par rambc dans le forum Général Python
    Réponses: 3
    Dernier message: 08/01/2009, 20h53

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