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 :

Message d'erreur : unsubscriptable object


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut Message d'erreur : unsubscriptable object
    Bonjour,

    Je débute en Python et je ne parviens pas à comprendre le message d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File "C:\Python24\Chess.py", line 24, in desscase
        if echiq[ip][indice]>0:
    TypeError: unsubscriptable object
    J'ai un peu cherché sur Google, ou sur ce site, mais je n'ai pas trouvé de réponse qui me compréhensible. J'ai sans doute encore manqué quelque chose de simple, mais si quelqu'un pouvait m'expliquer ce que veut dire

    unsubscriptable object

    il me semble que cela me fournirait peut-être une indication utile. Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Salut,

    unscriptable est l'object qui n'a pas de méthode __getitem__ ou qui n'est pas list, str, dict ou par exemple tuple

    En clair, si echiq[ip] était une liste, accéder à l'élément d'index [indice] pourrait fonctionner mais une erreur de logique fait que le contenu d'echiq n'a pas la structure (ex: liste de liste) permettant d'interpreter correctement echiq[ip][indice].

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

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Autrement dit:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def f(x):
        print x+2
    print f[7]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: 'function' object is not subscriptable


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ens = set([5,34,29,12])
    print ens[2]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: 'set' object does not support indexing


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class HU:
        pass
    print HU[5]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: 'classobj' object is not subscriptable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class HU:
        pass
     
    ha = HU()
    print ha[3]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AttributeError: HU instance has no attribute '__getitem__'


    Je ne sais pas pourquoi les erreurs sont libellées différemment. A priori c’est la même sorte d’erreur partout

  4. #4
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Citation Envoyé par eyquem Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AttributeError: HU instance has no attribute '__getitem__'
    Cette dernière est intéressante... Ce n'est pas une TypeError mais une AttributeError. C'est bon à savoir, et peut être source de surprise !

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Ca dit que malgré que le tout objet, type et object ne sont pas de la même veine...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class HU:
        pass
     
    ha = HU()
    print ha[3]
     
    AttributeError: HU instance has no attribute '__getitem__'
    Cette dernière est intéressante... Ce n'est pas une TypeError mais une AttributeError. C'est bon à savoir, et peut être source de surprise !

    Ca dit que malgré que le tout objet, type et object ne sont pas de la même veine...

    Donc j’essaie:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class HU(object):
        pass
     
    ha = HU()
    print ha[3]


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: 'HU' object does not support indexing


    ...ggglllllll...

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Ca dit que malgré que le tout objet, type et object ne sont pas de la même veine...
    Donc avec les new_style classes tout est bien "objet" alors...
    Ouf!!!
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    Merci pour ces deux réponses très rapides. Je croyais avoir créé une liste à deux dimensions alors qu'en réalité c'était une liste à une dimension.

    Je viens de réussir une chose qui n'étonnera que moi mais que je ne pensais pas faire aussi vite. Il s'agit d'un script de 6 ou 7 pages qui affiche un jeux d'échecs et qui vérifie le respect de la règle du jeux. Mais je suis loin de maitriser les bases de Python et beaucoup de points ne doivent pas être d'un style très actuel.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/02/2008, 20h02
  2. Réponses: 11
    Dernier message: 23/03/2007, 14h46
  3. [newbie]message erreur 438 object doen't support ...
    Par megapacman dans le forum Access
    Réponses: 6
    Dernier message: 13/03/2006, 14h28
  4. [CR] Message d'erreur
    Par nono1 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/09/2002, 14h54
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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