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 :

la virgule entre les variables


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2012
    Messages : 51
    Par défaut la virgule entre les variables
    Hello,
    Pouvez vous svp m 'expliquer à quoi se rassemble ces deux lignes de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    get_value = getattr(bclient, 'get_%s_value' % self.value)
    db_value, current_value = get_value()
    1 - la difference entre get_value et get_value()

    2 - Comment ca se passe au niveau affectaion de la ligne du code suivante:
    db_value, current_value = get_value()

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2014
    Messages : 50
    Par défaut
    Dans la première ligne on parle d'une variable.
    Dans la seconde on parle d'une fonction.

    Dans l'état je pense que ce code procure une erreur.

    Cdt.

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur banc de test
    Inscrit en
    Mai 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur banc de test
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 199
    Par défaut
    Bonsoir,

    La première ligne récupère l'attribut get... de bclient.
    Un attribut peut être tout type de variable y compris une fonction (on parle de méthode lorsque c'est dans une classe).

    Exemple avec self.value = "jack"

    Ça reviendra à écrire : get_value = bclient.get_jack_value
    puis puisque l'attribut semble être une fonction retournant une liste/tuple de 2 valeurs, revenant à écrire ceci :
    result = get_value()

    db_value = result[0]
    current_value = result[1]

    Pour la syntaxe utilisée dans votre exemple il s'agit d'unpaking :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db_value, current_value = (1, 2)
    On pourrait encore réduire l'écriture par ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db_value, current_value = getattr(bclient, 'get_%s_value' % self.value)()
    Mais c'est moins évident à lire.

    Pour l'essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class bclient(object):
    	def get_jack_value():
    		return (1, 2)
     
    db_value, current_value = getattr(bclient, 'get_%s_value' % "jack")()

Discussions similaires

  1. [SQL-Server] Ajouter une virgule entre les valeurs récupèrées de cases à cocher
    Par arthuro45 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/04/2010, 19h48
  2. Problème de dépendance entre les variables
    Par Lotendan dans le forum Général Python
    Réponses: 6
    Dernier message: 26/08/2008, 10h49
  3. Réponses: 7
    Dernier message: 20/08/2007, 13h57
  4. Réponses: 4
    Dernier message: 13/06/2007, 09h45

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