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 :

probleme de classe de fonctions


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 10
    Points
    10
    Par défaut probleme de classe de fonctions
    bonjour a tous, voici mon problème
    j'essaye de programmer une classe de fonctions pour additionner 2 matrices

    et au niveau de l’exécution, l’interpréteur ne reconnait pas la definition d'une fonction "taille"

    voici le code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    class Matrice:
        def __init__(self,mat):
            self.lst=mat
     
        def taille(self):
            print(len(lst[0]), len(lst))
            return (len(lst[0]), len(lst))
     
        def __getitem__(self, elm):
            i, j = elm
            return self.lst[i][j]
        def __setitem__(self, elm):
            i,j=elm
            return self.lst[i][j]
     
        def __add__(self, other):
            return (self.lst.__getitem__(self.lst.taille()))+(other.__getitem__(other.taille()))
     
     
     
        def additionner(self, mat):        
            i,j= taille(self.lst)
            for i in range(m):
                for j in range(n):
                    lst_ligne.append(self.lst.__add__(mat))
            lst_retour.append(lst_ligne)
            return lst_retour

    et a l'execution ca me donne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a=Matrice([[1, 2, 3], [4, 5, 6]])
    >>> b=Matrice([[6, 5, 4], [3, 2, 1]])
    >>> a.additionner(b)
    Traceback (most recent call last):
      File "<pyshell#18>", line 1, in <module>
        a.additionner(b)
      File "C:\Users\Zeus\Desktop\tast.py", line 22, in additionner
        i,j= taille(self.lst)
    NameError: global name 'taille' is not defined



    merci de votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    j'ai supposé l'indentation ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def additionner(self, mat):
        i,j= self.taille()
        for i in range(m):
            for j in range(n):
            lst_ligne.append(self.lst.__add__(mat))
            lst_retour.append(lst_ligne)
        return lst_retour

  3. #3
    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
    Salut,
    Python n'est pas C++: pour accéder aux différentes entités relatives à une instance (attributs, methodes), il faut préfixer leur "nom" par 'self.' - ou plutôt par l'identifiant correspondant au premier paramètre de la 'méthode' que l'on écrit conventionnellement "self".
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Probleme d'apel de fonction dans une autre classe
    Par freecell31 dans le forum MFC
    Réponses: 24
    Dernier message: 13/05/2006, 11h34
  2. Réponses: 8
    Dernier message: 13/08/2004, 12h32
  3. probleme compilation classe avec Borland c++ compiler 5.5
    Par softblue dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 17/06/2004, 15h16
  4. problème de classe d'association
    Par Nip dans le forum Diagrammes de Classes
    Réponses: 8
    Dernier message: 08/06/2004, 16h08
  5. Probleme de classe CComplex
    Par Balls dans le forum MFC
    Réponses: 7
    Dernier message: 13/02/2004, 10h55

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