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 :

Création d'objets en série


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Création d'objets en série
    Salut les gens,

    Je veux simuler un processus industriel. Pour celà, l'utilisateur peut faire un modèle en choisissant le nombre d'éléments qui s'enchainent souhaités. Si il veut par exemple que sa chaine comporte 20 éléments alors ce sera 20, sinon 30, 35 ou 40...
    Et des paramètres propres à chacun de ces objets seront paramétrables indépendamment les uns des autres. Pour l'instant, mon idée est d'enregistrer dans une variable le nombre d'éléments souhaités par l'utilisateur pour la simulation. Ensuite, faire tourner une boucle "while" autant de fois qu'il faut créer d'objets.
    Mon soucis est le suivant. Par exemple, si l'utilisateur choisis de faire s'enchainer 40 éléments, le 1er par exemple devrait s'appeler element1, puis element2, etc... jusqu'à element40. Mais python peut il reconnaitre une syntaxe de type element+(str(x)) comme un nom d'objet elementx.

    Merci pour votre aide

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 048
    Points : 1 378
    Points
    1 378
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('element'+str(x)+'=mon_objet()')

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Si les éléments sont représentés par une classe, les instances de cette classe peuvent être portées par une simple liste. 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
     
    class Element(object):
        def __init__(self, numelem):
            self.numelem = numelem
     
        def affichenum(self):
            print self.numelem
     
    nmax = 30
    element = []
    for i in xrange(0, nmax):
        element.append(Element(i))
     
    element[5].affichenum()
    5
    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    J'ajoute des choses à mon message précédent.

    S'il s'agit de simuler des processus industriels, on peut aller plus loin.

    Avec la solution de la liste des instances de classes, on peut avoir des classes qui sont des threads qui s'exécutent en parallèle. Ces threads peuvent être différents (=qui réalisent des opérations différentes), qui s'enclenchent dans un ordre donné, entre lesquels on peut avoir une file d'attente (stock discontinu ou continu). Si le stock est discontinu, on peut même avoir des règles de priorité pour définir le produit à prendre parmi ceux qui attendent (on peut donc gérer des urgences).

    Si on a un flux discontinu comme un atelier d'outillage mécanique, les tâches peuvent être définies à la préparation et donc solliciter les éléments (les machines) pas toujours les mêmes et pas toujours dans le même sens. Comme les threads fonctionnent en parallèle, on peut donc engager les travaux à la suite sans attendre que les précédents soit sortis. On peut faire périodiquement des statistiques pour afficher l'état et l'évolution de l'atelier. On peut même simuler des pannes ou des accidents au hasard selon des historiques pour voir comment l'atelier réagit (stocks, retards, goulots, ...).

    Bref, la simulation de processus industriels est un domaine très intéressant, et Python peut parfaitement y répondre.

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par nicogigo Voir le message
    Mon soucis est le suivant. Par exemple, si l'utilisateur choisis de faire s'enchainer 40 éléments, le 1er par exemple devrait s'appeler element1, puis element2, etc... jusqu'à element40.
    Pourquoi le devrait-il ? Les tableaux n'ont pas été créés pour que dalle !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Merci
    Merci pour vos codes. Je programme pas en python depuis longtemps, je vais décortiquer ça. A première vue ça ne me semble pas très complexe et tout à fait logique. Je vais tester ça aujourd'hui, je vous dirai si j'y arrive.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Merci
    J'ai décortiqué ça et c'est effectivement très simple. J'aurais pensé que ça serait plus compliqué, c'est finalement tout con.
    Merci beaucoup pour vos aides

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

Discussions similaires

  1. [PowerBuilder] Création d'objets dynamiques
    Par Béné123456789 dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 00h33
  2. création d'objet en mémoire partagé
    Par BigNic dans le forum C++
    Réponses: 6
    Dernier message: 28/11/2005, 18h41
  3. Réponses: 11
    Dernier message: 16/10/2005, 20h21
  4. [JMenuBar] Création d'objets à la volée
    Par Rampa dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 13h56
  5. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 11h00

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