web-dev-qa-db-fra.com

Que signifie "appeler" une fonction en Python?

Que signifie et appelle "appeler"? Comment appeleriez-vous une fonction en Python?

10
user2837438

Lorsque vous "appelez" une fonction, vous dites simplement au programme d'exécuter cette fonction. Donc, si vous aviez une fonction qui ajoutait deux nombres tels que:

def add(a,b):
    return a + b

vous appelleriez la fonction comme ceci:

add(3,5)

qui renverrait 8. Dans ce cas, vous pouvez mettre deux nombres entre parenthèses. Vous pouvez également appeler une fonction comme celle-ci:

answer = add(4,7)

Ce qui fixerait la réponse variable à 11 dans ce cas.

19
Joel Green

Je vais donner une réponse légèrement avancée. En Python, les fonctions sont objets de première classe . Cela signifie qu'ils peuvent être "créés dynamiquement, détruits, passés à une fonction, renvoyés en tant que valeur et avoir tous les droits comme les autres variables du langage de programmation".

L'appel d'une instance de fonction/classe dans Python signifie invoquer la méthode __call__ De cet objet. Pour les classes de style ancien, les instances de classe sont également appelables mais uniquement si l'objet qui les crée a une méthode __call__. Il en va de même pour les classes de nouveau style, sauf qu'il n'y a pas de notion d '"instance" avec les classes de nouveau style. Ce sont plutôt des "types" et des "objets".

Comme cité dans la page Modèle de données Python 2 , pour les objets de fonction, les instances de classe (anciennes classes de style) et les objets de classe (classes de nouveau style), "x(arg1, arg2, ...) est un raccourci pour x.__call__(arg1, arg2, ...) ".

Ainsi, chaque fois que vous définissez une fonction avec la sténographie def funcname(parameters): vous créez vraiment un objet avec une méthode __call__ Et la sténographie de __call__ Consiste simplement à nommer l'instance et à suivre avec des parenthèses contenant les arguments de l'appel. Comme les fonctions sont des objets de première classe en Python, elles peuvent être créées à la volée avec des paramètres dynamiques (et donc accepter des arguments dynamiques). Cela est très pratique avec les fonctions/classes de décoration que vous lirez plus tard.

Pour l'instant, je suggère de lire le Official Python Tutorial .

12
Shashank

"Appeler" signifie faire une référence dans votre code à une fonction qui est écrite ailleurs. Cette fonction "appel" peut être effectuée vers la bibliothèque standard Python (tout ce qui est installé avec Python), des bibliothèques tierces (tout ce que d'autres personnes ont écrit que vous souhaitez utiliser) ou la vôtre code (trucs que vous avez écrit). Par exemple:

#!/usr/env python

import os

def foo():
    return "hello world"

print os.getlogin()
print foo()

J'ai créé une fonction appelée "foo" et appelée plus tard avec cette instruction d'impression. J'ai importé la bibliothèque "os" standard Python puis j'ai appelé la fonction "getlogin" dans cette bibliothèque.

2
queso

lorsque vous appelez une fonction, elle est appelée "appeler" une fonction. Par exemple, supposons que vous ayez défini une fonction qui trouve la moyenne de deux nombres comme ceci -

def avgg(a,b) :
        return (a+b)/2;

maintenant, pour appeler la fonction, vous aimez ça.

x=avgg(4,6)
print x

la valeur de x sera 5.

0