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 :

simplifier un code : appel de fonctions d'une liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut simplifier un code : appel de fonctions d'une liste
    Bonsoir,
    Voici un extrait de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    tensions = [tension_0,tension_1,tension_2,tension_3,tension_4,tension_5,\
    tension_6,tension_7,tension_8,tension_9]
     
    for i in range(10):
        tension=tensions[i]
    Les tension_i sont des fonctions que je souhaite traiter par d'autres fonctions.
    N'y aurait-il pas une façon de faire plus compacte et qui m'éviterait de taper tout dans la liste ?
    A bientôt.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    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 742
    Par défaut
    Salut,

    Peut être une chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tensions = [ globals()['tension_%d' % ix] for ix in range(10) ]
    for fct in tensions:
         ...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti Avatar de temabul
    Homme Profil pro
    Informatique de Loisir
    Inscrit en
    Février 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informatique de Loisir

    Informations forums :
    Inscription : Février 2015
    Messages : 26
    Par défaut
    Bonsoir, (python 3.5)

    En variables locales ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tensions =  [['tension_%d' % ix] for ix in range(10)]
    print(tensions)
    Par contre problème avec globals() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tensions =  [ globals()['tension_%d' % ix] for ix in range(10)]
    KeyError: 'tension_0'

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Citation Envoyé par temabul Voir le message
    Bonsoir, (python 3.5)

    Par contre problème avec globals() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tensions =  [ globals()['tension_%d' % ix] for ix in range(10)]
    KeyError: 'tension_0'
    Tu les as réellement créées les fonctions ?

  5. #5
    Membre averti Avatar de temabul
    Homme Profil pro
    Informatique de Loisir
    Inscrit en
    Février 2015
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informatique de Loisir

    Informations forums :
    Inscription : Février 2015
    Messages : 26
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Tu les as réellement créées les fonctions ?
    Excusez pour la gêne. Ça y est, j'ai compris.

  6. #6
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par temabul Voir le message
    En variables locales ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tensions =  [['tension_%d' % ix] for ix in range(10)]
    print(tensions)
    Bonjour,
    L'objectif est de créer une liste de fonctions, pas une liste de chaînes de caractères.
    Ici, ce sont juste des chaînes qui sont créées.

    Clodion

  7. #7
    Membre expérimenté Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Par défaut

    Si tu veux créer une liste de fonction utilises plutôt des dictionnaires;
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_liste_de_fonctions = {'maFonction1': fonction1, 'maFonction2': fonction2 ..., 'maFonctionN': fonctionN}
    ainsi chaque fois que tu voudras utiliser une fonction de ton dictionnaire tu pourras faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_liste_de_fonction['maFonction1']()
    pour voir ta fonction s'exécuter.
    J'espère ne pas être un HS

  8. #8
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Merci à vous.
    La solution de wiztricks fonctionne parfaitement.
    Pour un dictionnaire, j'y avais pensé mais je ne maîtrise pas vraiment, donc je préfère m'abstenir pour l'instant...
    A bientôt.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/12/2006, 02h18
  2. Appel de fonction dans une page JSP
    Par Addouna dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/03/2006, 12h56
  3. Appel de fonction d'une DLL en TANSAC SQL
    Par sylvain114d dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 10h21
  4. Réponses: 4
    Dernier message: 23/11/2005, 09h27
  5. Appel aux fonctions d'une DLL externe ??
    Par Fbartolo dans le forum Access
    Réponses: 7
    Dernier message: 21/11/2005, 17h54

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