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 :

aide symbole *


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Par défaut aide symbole *
    Bonjour,
    pourriez vous m'éclairez sur la signification de l'étoile * ici :


  2. #2
    Membre confirmé Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Par défaut
    Cela veut dire que ta fonction prend un tuple en paramètre, c'est utile pour créer une fonction qui prend en paramètre un nombre variable d'arguments

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def fn(*args):
        print 'Nombre de paramètres : ' + str(len(args))
     
    fn(2, 1, 6) # affiche 'Nombre de paramètres : 3'
    fn(3) # affiche 'Nombre de paramètres : 1'

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Cela ne signifie pas que la fonction prend un tuple en paramètre, cela signifie l'argument p (dans l'exemple donnée par le PO) recevra un tuple contenant les arguments positionnels surnuméraires. Cela permet effectivement d'implanter une fonction qui prend un nombre variable d'argument. A noter qu'il existe la même chose pour les arguments 'keywords' surnuméraires:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def ma_fonction(a, b, c, *pargs, **kargs):
        print a, b, c, pargs, kargs
    Ainsi l'appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_fonction(1, 2, 3, 4, 5, d=6, e=7, f=8)
    affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1 2 3 (4, 5) {'e': 7, 'd': 6, 'f': 8}
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    On peut aussi utiliser * et ** lors d'un appel de fonction pour effectuer l'opération inverse: décomposer un tuple en arguments positionnels ou un dictionnaire en arguments nommés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> def f(a,b,c,d):
    ... 	print a,b,c,d
    ... 	
    >>> t = (2,3)
    >>> d = {'c':8, 'd':9}
    >>> f(*t,**d)
    2 3 8 9

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Par défaut
    Merci tous les trois, c'est très clair maintenant !!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/08/2009, 11h45
  2. Réponses: 2
    Dernier message: 16/06/2009, 19h57
  3. besoin d'aide (reutilisation de symbole)
    Par angelmn dans le forum Flash
    Réponses: 1
    Dernier message: 14/05/2007, 03h10
  4. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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