Démêler l'omission des parenthèses dans les appels de fonctions et de méthodes
En Python, les fonctions et les méthodes sont traitées comme des objets de première classe. Cela signifie qu'ils peuvent être attribués à des variables, passés comme arguments à d'autres fonctions et même renvoyés par des fonctions.
Cependant, lorsque nous appelons une fonction ou une méthode, nous ajoutons généralement des parenthèses à son nom, comme my_func (). Cependant, il existe certains scénarios dans lesquels l'omission des parenthèses peut être bénéfique.
Considérez le code suivant :
class objectTest(): def __init__(self, a): self.value = a def get_value(self): return self.value a = objectTest(1) b = objectTest(1) print(a == b) print(a.get_value() == b.get_value) print(a.get_value() == b.get_value()) print(a.get_value == b.get_value)
La sortie de ce code est :
False False True False
Ce résultat déroutant vient du fait que get_value est une méthode, et pourtant nous l'utilisons comme une variable sans l'appeler au préalable. Ceci est possible car l'omission des parenthèses autour d'un nom de fonction ou de méthode renvoie l'objet de fonction ou de méthode lui-même, appelé appelable.
Un appelable est un objet qui peut être appelé pour exécuter une action spécifique lorsque des parenthèses sont ajoutées. . Dans l'exemple donné, a.get_value fait référence à un objet appelable représentant la méthode get_value de l'objet a.
Par conséquent, les comparaisons suivantes sont effectuées :
L'omission des parenthèses nous offre une flexibilité dans divers scénarios :
En comprenant le comportement de l'omission des parenthèses dans les appels de fonctions et de méthodes, nous élargissons nos possibilités en programmation Python.
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!