Déclaration Tableau de type class (python)
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Déclaration Tableau de type class (python)



  1. #1
    Roma7777

    Déclaration Tableau de type class (python)


    ------

    Bonjour à tous

    Je cherche à déclarer un tableau qui est du type d'une de mes classes mais lorsque je le crée, toutes les cases de mon tableau sont de la même adresse. Donc si je change la valeur de la case 0 puis celle de la case 1, la valeur de la case 0 sera celle de la case 1 lorsque je print.

    Voici mon programme:
    Code:
        class t_Point:
             def __init__(self):
                  self.x = None
                  self.y = None
    
        TabPts = [t_Point()]*10
        
        TabPts[0].x = 48.85527112621867
        TabPts[0].y = 2.2987313731435943
        TabPts[1].x = 48.85555508636719
        TabPts[1].y = 2.2991282818690006
        TabPts[2].x = 48.85518985263166
        TabPts[2].y = 2.2996781137622957
        TabPts[3].x = 48.85490596904614
        TabPts[3].y = 2.299289191132514
        
        print(TabPts[0].x)
        print(TabPts[1].x)

    Pour les print j'obtiens les valeurs de la case [3]

    Si vous pouvez m'aider à déclarer mon tableau, ce serait sympa merci

    -----
    Images attachées Images attachées  

  2. #2
    Roma7777

    Re : Déclaration Tableau de type class (python)

    Comme je n'ai pas besoin d'un grand tableau, max 15 cases, j'ai trouvé cette alternative mais c'est vraiment moche et ça prend beaucoup de place

    Code:
    val0 = A()
    val1 = A()
    val2 = A()
    val3 = A()
    val4 = A()
    val5 = A()
    val6 = A()
    val7 = A()
    val8 = A()
    val9 = A()
    TabPts = [val0, val1, val2, val3, val4, val5, val6, val7, val8, val9]

  3. #3
    umfred

    Re : Déclaration Tableau de type class (python)

    le plus simple c'est peut-être de faire:
    Code:
    TabPts=[]
    for i in range(0,15):
        TabPts.append(t_Point())
    ou/et d'élargir ton constructeur pour pouvoir l'initialiser directement
    Code:
    class t_Point:
        def __init__(self, x=None,y=None):
            self.x=x
            self.y=y
    
    TabPts=[]
    TabPts.append(t_Point(48.85527112621867, 2.2987313731435943))
    ...
    Dernière modification par umfred ; 24/08/2020 à 14h24.

  4. #4
    Roma7777

    Re : Déclaration Tableau de type class (python)

    La première solution fonctionne, merci je vais prendre celle là

  5. A voir en vidéo sur Futura
  6. #5
    umfred

    Re : Déclaration Tableau de type class (python)

    la seconde aussi devrait fonctionner: on peut tout autant faire TabPts.append(t_Point()) que TabPts.append(t_Point(10,2))
    On se rajoute juste la possibilité d'initialiser un objet t_Point() lors de sa déclaration.

Discussions similaires

  1. Déclaration tableau à plusieurs indices / C
    Par FBMeca dans le forum Programmation et langages, Algorithmique
    Réponses: 19
    Dernier message: 26/04/2020, 08h56
  2. python : variable globale dans des class
    Par docEmmettBrown dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 25/05/2015, 21h29
  3. [PIC24FJ] - Déclaration d'un tableau / Erreur sur 'rom' et 'far'
    Par invite3c35244f dans le forum Électronique
    Réponses: 13
    Dernier message: 24/10/2011, 14h43
  4. aide pour declaration de tableau
    Par LABTOOL48 dans le forum Électronique
    Réponses: 2
    Dernier message: 08/04/2010, 08h29
  5. Eclipse 3.4.0: type error class not found : XrayLogger
    Par invite2003a1d4 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 13/10/2008, 14h30