05/06/2018, 00h24
#1
Membre extrêmement actif
[def] return dans une function
Bonsoir,
A quoi sert l'instruction
lorsque la function ne retourne rien
05/06/2018, 08h23
#2
Expert éminent sénior
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". Envoyé par bonjourajax
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
05/06/2018, 08h39
#3
Sinon vous avez cette réponse dans tous les bons bouquins
Ici, c'est Python en concentré. Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver. Les fonctions python. (Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. (Einstein)
05/06/2018, 10h24
#4
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?
- Python fonction return to main page
Python Fonction Return To Main Page
Dans le second cas, le type ( list) est _mutable_, l'opérateur += évite la copie
car la variable peut être modifiée. Même si b=a est exécutée avant l'instruction suivante,
elle n'a pas pour effet de conserver l'état de a avant l'ajout d'élément. Python fonction return to main page. Un autre exemple
a = [ 1, 2]
a [ 0] = - 1
print ( a) # --> [-1, 2]
print ( b) # --> [-1, 2]
Pour copier une liste, il faut expliciter la demander
b = list ( a)
print ( b) # --> [1, 2]
La page Immutable Sequence Types
détaille un peu plus le type qui sont mutable et ceux qui sont immutable. Parmi les types standards:
mutable
bool
int,
float,
complex
str,
bytes
None
tuple,
frozenset
immutable, par défaut tous les autres types dont:
list
dict
set
bytearray
Une instance de classe est mutable. Il est possible de la rendre
immutable par quelques astuces:
__slots__
How to Create Immutable Classes in Python
Ways to make a class immutable in Python
freeze
Enfin, pour les objects qui s'imbriquent les uns dans les autres, une liste de listes, une classe
qui incluent des dictionnaires et des listes, on distingue une copie simple d'une copie intégrale ( deepcopy).
a=a
self. b=b
def return_multi(a):
t=return_values(b, c)
return t
print(x. a, x. b, type(x))
Production: 6 7
Utilisez une dataclass pour renvoyer plusieurs valeurs d'une fonction en Python Une dataclass est une nouvelle fonctionnalité intéressante ajoutée à Python v3. Problème python return [Résolu]. 7 et plus. Elles sont similaires aux classes traditionnelles mais sont principalement utilisées pour stocker des données et toutes leurs fonctionnalités de base sont déjà implémentées. Le décorateur @dataclass et le module dataclass sont utilisés pour créer de tels objets. Dans le code ci-dessous, nous retournons une dataclass à partir d'une fonction. from dataclasses import dataclass
@dataclass
class return_values:
a: int
b: int
t= return_values(b, c)
Article connexe - Python Function Quitter une fonction en Python Arguments optionnels en Python Correction de l'erreur Python Return Outside Function La fonction zip() en Python