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 :

Instantiation conditionnelle et références


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut Instantiation conditionnelle et références
    Bonjours à tous, et désolé pour le titre peu descriptif, mais je n'ai pas trouvé mieux.

    Je suis expérimenté en programmation objet, mais pas trop en Python.

    Voici un exemple de 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 Simple:
    	varsList = []
     
     
     
    class Lister:
    	simplesList = []
     
     
    	def __init__(self):
    		for counter in range(0, 13):
     
    			if (counter%2) == 0:
    				simple = Simple()
    				self.simplesList.append(simple)
     
    			simple.varsList.append(counter)
     
     
     
    # Main program
     
    lister = Lister()
    for list in lister.simplesList:
    	print list
    	print list.varsList
    Et voici son résultat:
    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
     
    <__main__.Simple instance at 0x00A87148>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    <__main__.Simple instance at 0x00A87170>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    <__main__.Simple instance at 0x00A87198>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    <__main__.Simple instance at 0x00A871C0>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    <__main__.Simple instance at 0x00A871E8>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    <__main__.Simple instance at 0x00A87210>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    <__main__.Simple instance at 0x00A87238>
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    Seulement, je m'attendais à ça:
    [0, 1]
    [2, 3]
    [4, 5]
    [6, 7]
    [8, 9]
    [10, 11]
    [12, 13]

    On voit que simple = Simple() crée bien une nouvelle instance (les adresses des instances sont différentes), mais pourquoi diable, toutes les instances semblent référencer simple, alors que je suis sensé avoir créé un nouvel objet.


    Merci d'avance pour vos réponses et solutions (ça me bloque dans un programme plus complexe).

  2. #2
    Membre éclairé Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Par défaut
    Salut,

    Ta variable dans la classe Simple est une variable de classe.

    Essaye plutôt ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class Simple:	
    	def __init__(self):
    		self.varsList = []

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut
    Merci beaucoup ctiti, je me suis creusé la tête un bon moment!

    En tout cas, ça fonctionne ainsi, même si je trouve que Python n'est pas toujours cohérent.

    Merci encore!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/04/2015, 12h59
  2. [XL-2010] Mise en forme conditionnelle - référence relative
    Par Gugelhupf dans le forum Excel
    Réponses: 3
    Dernier message: 26/02/2013, 17h08
  3. [Toutes versions] Compilation conditionnelle et Références
    Par Golork dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/03/2012, 19h52
  4. [Livres/Références] Vos avis..
    Par Community Management dans le forum Livres
    Réponses: 6
    Dernier message: 25/07/2005, 19h31
  5. [Concept] Table de référence
    Par matlo dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 20/01/2003, 15h01

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