Maison >développement back-end >Tutoriel Python >Quand l'omission des parenthèses est-elle autorisée dans les appels de fonctions et de méthodes Python ?
En Python, les fonctions et les méthodes sont considérées comme des objets de première classe, ce qui signifie qu'elles peuvent être traitées comme n'importe quel autre type de données. Cependant, un aspect unique des objets de première classe est la possibilité de les utiliser sans parenthèses.
Explication de l'exemple de code
L'extrait de code fourni initialise deux instances de objectTest classe, a et b, avec la même valeur. La sortie montre que :
Omission des parenthèses
Le résultat surprenant est la dernière expression, a.get_value == b.get_value. Cela donne la valeur False même si get_value est la même méthode pour les deux objets. Cela se produit car sans parenthèses, nous n'appelons pas la méthode mais accédons plutôt à l'objet fonction lui-même.
Pourquoi l'omission est autorisée
Python autorise l'omission des parenthèses car cela fournit un moyen concis de transmettre une référence à l'appelable (fonction ou méthode) lui-même. Ceci est particulièrement utile dans plusieurs situations :
Utilisation des rappels :
Les rappels sont des fonctions ou des méthodes qui sont transmises à une autre fonction pour être exécutées ultérieurement. L'omission des parenthèses permet de transmettre la référence de rappel, comme le montre l'exemple de multitraitement :
t = Process(target=my_long_running_function)
Fonctions de mappage :
Lors de l'utilisation de la fonction map, vous pouvez passer un appelable sans parenthèses pour renseigner ses arguments :
map(do_something, ['hey', 'what up', 'yo'])
Dynamique Invocation :
L'omission des parenthèses permet une invocation dynamique, où vous pouvez récupérer et exécuter l'appelable souhaité à partir d'une collection :
str_ops = {'<': lt, '>': gt, '==': eq} op = str_ops.get(my_operator) if op: result = op(lhs, rhs)
En résumé, l'omission des parenthèses lors de l'appel de fonctions ou de méthodes permet pour le passage efficace des références à l'appelable lui-même, permettant diverses fonctionnalités telles que les rappels, l'invocation dynamique et le mappage.
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!