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 :

[def] return dans une function


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut [def] return dans une function
    Bonsoir,

    A quoi sert l'instruction


    lorsque la function ne retourne rien

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

    Techniquement, çà ne sert à rien si c'est juste la dernière instruction du block mais rencontré "plus tôt", il sert à "forcer" la sortie de la fonction un peu comme "break" dans les boucles "for" ou "while".

    Citation Envoyé par bonjourajax Voir le message
    lorsque la function ne retourne rien
    Avec Python, les fonctions sans "return" ou avec un "return" sans rien derrière retourne l'objet None (différent de "rien" car équivalent à False, il peut être utile...)

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    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 062
    Par défaut
    Sinon vous avez cette réponse dans tous les bons bouquins

    Nom : Capture du 2018-06-05 08-36-28.png
Affichages : 1184
Taille : 136,2 Ko

    Ici, c'est Python en concentré.

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Merci de vos réponses détaillées
    Je pensais qu'il y avait aussi une histoire de performances du fait d'écrire explicitement return (ou return None)

    Pour se compliquer : Dans le cas ou une function se termine par un while qui va devoir stopper l'execution de la function, il vaut mieux utiliser break ou return (return None) dans la boucle?
    Et de manière générale, lorsqu'on doit arrêter le script pour quelconque raison, est-il préférable de passer par (disons break) puis exit() ?

    - B

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    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 062
    Par défaut
    Pour se compliquer : Dans le cas ou une function se termine par un while qui va devoir stopper l'execution de la function, il vaut mieux utiliser break ou return (return None) dans la boucle?
    On choisit ce qui est adapté ! Si vous devez retourner un élément puis quitter la fonction, on utilise return. Si vous devez ajouter des éléments puis retourner une liste de ces éléments, vous devrez évidemment attendre que cette boucle se termine à un moment précis puis utiliser break.

    Et de manière générale, lorsqu'on doit arrêter le script pour quelconque raison, est-il préférable de passer par (disons break) puis exit() ?
    Je ne sais pas, rien de concret, pas de moyen de donner une réponse précise, désolé !

  6. #6
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Un exemple concret

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import sys
    def un():
        a=1
        b=2
        while(a):
            b += 1
            if (b == 3):
                sys.exit(0)
        return

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par bonjourajax Voir le message
    Pour se compliquer : Dans le cas ou une function se termine par un while qui va devoir stopper l'execution de la function, il vaut mieux utiliser break ou return (return None) dans la boucle?
    Les deux fonctionnent. Donc le choix se fera sur des critères non techniques comme lisibilité du code ou autre.

    Citation Envoyé par bonjourajax Voir le message
    Et de manière générale, lorsqu'on doit arrêter le script pour quelconque raison, est-il préférable de passer par (disons break) puis exit() ?
    idem.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Merci beaucoup.

    - B

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

Discussions similaires

  1. Type "groupe de controles" dans une function
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 20/06/2008, 21h07
  2. While dans une function ?
    Par jfberub dans le forum Langage
    Réponses: 5
    Dernier message: 02/12/2006, 21h34
  3. passer la valeur d'un return dans une méthode
    Par belukrin dans le forum Langage
    Réponses: 1
    Dernier message: 25/03/2006, 06h58
  4. Variables de Sessions crées dans une Function perdues
    Par vampiloup dans le forum Langage
    Réponses: 7
    Dernier message: 12/01/2006, 16h50
  5. tbitmap.free dans une function
    Par portu dans le forum Langage
    Réponses: 7
    Dernier message: 19/06/2003, 22h08

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