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 :

problème de concept pour les objets


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Par défaut problème de concept pour les objets
    Bonjour.
    Voilà, je viens vous demander de l'aide car je n'arrive pas a réaliser en python ce que j'aimerais faire.
    Je voudrais simuler un réflecteur, dont les différents composants sont différents objets. Le réflecteur est un objet, composé de plusieurs objets rangée, elles même composée de plusieurs objets mirroirs.
    Je voudrai associer au mirroir les différentes propriétés dont j'ai besoin (position, angle, pripriétés des matéraiux etc).
    Mon problème est pour définir correctement une rangée : j'aimerai que une rangée soit définie come une liste d'objets miroirs, et je ne sais pas comment l'écrire.
    J'ai donc une class miroir, et je définis une classe rangée
    class rangee(miroir)
    comment définir cet objet comme une liste de miroir en ayant accès aux propriétés des miroirs ?
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 035
    Par défaut
    Lorsque vous instanciez une classe mirroir, vous créez un objet mirroir.
    il vous suffit pour créer votre rangée, d'utiliser une liste et d'ajouter vos mirroirs.

    En code python ça ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    liste = []
    mirroir_1 = Mirroir(...) # Création de l'objet
    liste.append(mirroir_1) # Ajout de l'objet mirroir_1 dans la liste
    Pour accéder aux attributs de chaque objet (mirroir_1, mirroir_2, etc...), il suffit de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for mirroir in liste:
        print(mirroir.attribut)
    Seulement pour cela il faut avoir une bonne base en python, l'avez-vous?

    Maintenant si vous voulez en savoir plus, donnez un exemple de mirroir et ses attributs, ça se fait rapidement.

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Bonsoir,

    un exemple:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    # -*- coding: utf-8 -*-
     
    class Reflecteur(object):
        def __init__(self, numb):
            self.ranges = []
            self.set_ranges(numb)
     
        def set_ranges(self, count):
            for i in range(count):
                rng = Range()
                self.ranges.append(rng)
     
        def set_range_mirrors(self, idx, numb):
            self.ranges[idx].set_mirrors(numb)
     
        def ranges_count(self):
            return len(self.ranges)
     
    class Range(object):
        def __init__(self):
            self.mirrors = []
     
        def set_mirrors(self, count):
            for i in range(count):
                mirror = Mirror(i)
                self.mirrors.append(mirror)
     
        def mirrors_count(self):
            return len(self.mirrors)
     
    class Mirror(object):
        def __init__(self, idx):
            self.index = idx
     
        def get_index(self):
            return self.index
     
    if __name__ == '__main__':
        ref = Reflecteur(10)
        ref.set_range_mirrors(1, 5)
        ref.set_range_mirrors(2, 7)
     
        print "Ranges count:", ref.ranges_count()
        print "index of:", ref.ranges[1].mirrors[2].get_index()
    sommaire mais décrivant la structure de base.

  4. #4
    Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Par défaut
    Merci à vous deux fred1599 et VinsS.
    Pour tout vous dire fred 1599, je n'ai pas une base énorme en python, mais j'ai pas mal programmé en pascal et en matlab, donc je pensais m'en sortir. J'ai lu les tutoriels débutants de Gérard Swinnen pour python.
    Je pense que je n'arrivais pas à voir comment faire parce que je pensais que la rangée devaient être définie comme une classe qui hérite des miroirs. En fait vos deux exemples me montrent que c'est plus simple que je pensais. Merci VinsS pour l'idée d'indexation des miroirs, je n'y aurait pas pensé.
    Merci pour tout pour votre aide et votre réactivité. Je viendrais surement vous embêter plus tard.
    Je marque quand même le sujet comme résolu

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/03/2007, 00h15
  2. Problème de conception pour un Stack
    Par gelam dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2006, 16h47
  3. problème de configuration pour les sessions
    Par spilliaert dans le forum Langage
    Réponses: 13
    Dernier message: 27/12/2005, 20h44
  4. Problèmes de pubs pour les Lotteries
    Par VanHelsing dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/07/2005, 01h06
  5. Architecture pour les objets d'un jeu
    Par Freakazoid dans le forum DirectX
    Réponses: 7
    Dernier message: 31/07/2004, 13h09

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