Maison >développement back-end >Tutoriel Python >Comment écrire une fonction avec des paramètres de sortie (appelés par référence) en Python ?

Comment écrire une fonction avec des paramètres de sortie (appelés par référence) en Python ?

WBOY
WBOYavant
2023-09-02 16:21:06945parcourir

Comment écrire une fonction avec des paramètres de sortie (appelés par référence) en Python ?

Tous les paramètres (arguments) du langage Python sont passés par référence. Cela signifie que si vous modifiez le contenu de référence d'un paramètre dans une fonction, cette modification sera également reflétée dans la fonction appelante.

Réalisez cela d'ici -

tuple de résultat de retour

Exemple

Dans cet exemple, nous renverrons un tuple de résultats -

# Function Definition
def demo(val1, val2):
   val1 = 'new value'
   val2 = val2 + 1
   return val1, val2

x, y = 'old value', 5

# Function call
print(demo(x, y))

Sortie

('new value', 6)

Passer des objets mutables

Exemple

Dans cet exemple, nous passerons un objet mutable -

# Function Definition
def demo2(a):
   # 'a' references a mutable list
   a[0] = 'new-value'
   # This changes a shared object
   a[1] = a[1] + 1

args = ['old-value', 5]
demo2(args)
print(args)

Sortie

['new-value', 6]

Passez un dictionnaire muté

Exemple

Dans cet exemple, nous passerons un dictionnaire -

def demo3(args):
   # args is a mutable dictionary
   args['val1'] = 'new-value'
   args['val2'] = args['val2'] + 1

args = {'val1': 'old-value', 'val2': 5}

# Function call
demo3(args)
print(args)

Sortie

{'val1': 'new-value', 'val2': 6}

Valeurs dans les instances de classe

Exemple

Dans cet exemple, nous allons emballer la valeur dans l'instance de classe -

class Namespace:
   def __init__(self, **args):
      for key, value in args.items():
         setattr(self, key, value)

def func4(args):
   # args is a mutable Namespace
   args.val1 = 'new-value'
   args.val2 = args.val2 + 1

args = Namespace(val1='old-value', val2=5)

# Function Call
func4(args)
print(vars(args))

Sortie

{'val1': 'new-value', 'val2': 6}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer