Lors de l'écriture d'une fonction qui accepte un objet mutable, qui peut être modifié, est-il nécessaire de renvoyer cet objet à l'appelant?Python, Dois-je renvoyer un objet qui a été passé en paramètre?
Je veux dire par ... nécessaire
- Y at-il une ligne directrice spécifique PEP autour de ce sujet?
- Sinon, quel est le plus commun dans le monde de la programmation Python?
Un peu de code:
def foo(args):
args['a'] = 'new-value'
args['b'] = args['b'] + 1
# is there a need for a 'return args' ?
args = {'a': 'old-value', 'b': 99}
foo(args) # is there a need for args = foo(args)
print(args['a'], args['b']) # outputs new-value 100
"explicite est mieux que implicite." me fait penser que je devrais faire le potentiel pour args
de changer très explicite dans le corps principal, de sorte que l'on n'a pas à regarder dans la fonction pour voir si args
pourrait être changé ...
Je pense qu'il est préférable d'avoir return afin que je puisse faire 'print (foo (args))' immédiatement – ewwink
Habituellement, les méthodes qui modifient l'objet renvoient 'None' à moins qu'il ne soit logique de retourner quelque chose d'autre (par exemple,' popitem'). Je n'ai pas de pointeur pour le moment. – spectras
Retour avec un mail pertinent de l'un des développeurs python. Pas un PEP, mais intéressant lire quand même: https://mail.python.org/pipermail/python-dev/2003-October/038855.html – spectras