Cet article présente principalement les différences entre les fonctions et les méthodes en python sous plusieurs dimensions :
Premier , analysons-le du point de vue de la classification.
(1) Classification des fonctions :
Fonctions intégrées : certaines fonctions embarquées dans python. Fonction anonyme : une ligne de code implémente une fonction. Fonction personnalisée de fonction récursive : définissez des fonctions en fonction de vos propres besoins.
(2) Classification des méthodes :
Méthode ordinaire : méthode appelée directement avec soi. Méthode privée : __nom de la fonction, une méthode qui ne peut être appelée que dans la classe. Méthode de propriété : @property, déguisez la méthode en propriété pour rendre le code plus raisonnable. Méthode spéciale (méthode de double soulignement) : En prenant __init__ comme exemple, elle est utilisée pour encapsuler les attributs de l'objet instancié, tant que l'objet est instancié, la méthode __init sera exécutée s'il n'y a pas de sous-classe de l'objet. la classe parent sera recherchée (Super classe), s'il n'y a pas de classe parent (super classe), héritez directement de la classe objet (python 3.x) et exécutez la méthode __init__ dans la classe. Méthode de classe : exploitez les propriétés et les méthodes dans le modèle public en appelant le nom de la classe. Méthode statique : Il n'est pas nécessaire de passer dans l'espace de classe ou la méthode objet. La fonction est d'assurer la cohérence et la standardisation du code. Il peut s'agir d'une méthode complètement indépendante en dehors de la classe, mais pour la cohérence du code, elle est utilisée. est uniformément placé dans un certain milieu de module (fichier py).
Recommandations associées : "Tutoriel vidéo Python"
Deuxièmement, analysez-le du point de vue de la portée :
(1 ) Portée de la fonction : Du début de l'appel de fonction à la fin de l'exécution de la fonction, après retour à l'appelant, l'espace ouvert pendant le processus d'exécution sera automatiquement libéré, c'est-à-dire qu'une fois l'exécution de la fonction terminée, le. la valeur de la variable est modifiée à l'intérieur du corps de la fonction par affectation, etc. Elle ne sera pas conservée et l'espace ouvert sera automatiquement libéré après avoir été renvoyé à l'appelant.
(2) Portée de la méthode : Lorsqu'une méthode est appelée via un objet instancié, l'espace ouvert après l'appel ne sera pas libéré, ce qui signifie que la valeur modifiée de la variable dans la méthode appelante sera toujours conservée .
Enfin, la méthode d'appel est différente.
(1) Fonction : appelée via "nom de la fonction ()".
(2) Méthode : appelée via "object.method name".
class Foo(object): def func(self): pass #实例化 obj = Foo() # 执行方式一:调用的func是方法 obj.func() #func 方法 # 执行方式二:调用的func是函数 Foo.func(123) # 函数
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!