Méthode de classe vs méthode statique en python

Méthode de classe vs méthode statique en python
Parlons de la définition et de l'utilisation de la classe et des méthodes statiques dans Python.

Méthode de classe dans Python

La méthode de classe est liée à la classe elle-même et pas à aucun objet de classe. De plus, seules les variables de classe y sont accessibles. La modification d'une valeur d'une telle variable de classe affecte tous les objets de classe. Nous déclarons la méthode en tant que méthode de classe chaque fois que nous utilisons les variables de classe lors de la mise en œuvre d'une technique. La classe est référencée par un mot-clé «CLS» qui est le premier paramètre d'une méthode de classe. Lorsque nous travaillons avec des techniques d'usine, nous utilisons des méthodes de classe. Les méthodes d'usine comprennent celles qui, selon le cas d'utilisation, renvoient un objet de classe.

En utilisant le décorateur @classMethod ainsi que la fonction classMethod (), nous devons informer explicitement Python que la méthode est en effet une méthode de classe. Lorsque les méthodes de classe ont été définies, le processus est assez similaire à celui de l'établissement d'une fonction standard. De même, pour obtenir des variables de classe à partir des méthodes de classe, nous utilisons un mot-clé «CLS» comme argument principal. En conséquence, nous avons un contrôle sur la mise à jour de l'état de classe en raison de la méthode de classe. Bien qu'il soit possible d'utiliser une variable avec un nom différent pour «CLS», cela est découragé étant donné que le soi est la norme préférée à Python. La méthode de classe ne peut pas accéder aux attributs d'instance; il n'accèdera qu'à des attributs de classe.

Méthode statique dans Python

Une tâche indépendante peut être effectuée à l'aide d'une méthode statique, qui est une méthode d'utilité générique. Les méthodes statiques de Python ne sont pas exactement comparables à celles de Java mais plutôt plus proches de C++. Même si une méthode statique ne contient pas de paramètre initial implicite, comme soi ainsi que «CLS», il ne peut pas accéder à la classe mais aussi aux variables d'instance.

Chaque méthode que nous ajoutons à une classe sera convertie directement en une méthode d'instance. Un décorateur @StaticMethod et une fonction autrement statingMethod () doivent être utilisés pour indiquer expressément à Python que la méthode est en effet statique. Il est assez similaire à la construction d'une fonction régulière pour établir des méthodes statiques à l'intérieur d'une classe.

Différence

La méthode de classe a utilisé un accès et a modifié l'état de la classe. En modifiant une valeur d'une telle variable de classe qui affecte tous les objets de classe, il peut modifier l'état de l'une ou l'autre classe.

En raison de leur manque d'accès aux propriétés des objets (variables d'instance) ainsi que des attributs de classe, les méthodes statiques ne sont que parfois utilisées (variables de classe). Par conséquent, ils peuvent en effet être utiles dans certaines situations, une telle conversion de type.

En tant que méthode d'usine, les méthodes de classe sont utilisées. Les méthodes d'usine incluent celles qui, selon le cas d'utilisation, renvoient l'objet de classe. Par exemple, avant de générer un objet, vous devez effectuer certains prétraitements sur les données fournies.

Exemple n ° 1

Voyons comment utiliser la méthode statique dans le code.

Initialement, nous construisons une classe appelée «classe EMP 1» pour l'employé 1. Nous utiliserons une méthode statique, spécifiant un échantillon «y», ainsi que l'impression des résultats par l'utilisation de la commande d'impression. Après cela, nous avons maintenant appelé «EMP_1.Sample (), «Une fonction statique qui peut également être invoquée à l'aide de l'objet« emp1 = emp_1 ()."

Exemple n ° 2

Lorsque vous spécifiez la méthode de classe, utilisez @classMethod Decorator ou peut-être la fonction classMethod (). Pour créer une méthode statique, utilisez simplement la fonction staticMethod () ou le décorateur @StaticMethod.

Chaque fois que la définition d'une méthode de classe, utilisez des «CL» comme tout premier paramètre. Se référer à la classe est le «CLS». En raison du manque d'accès aux variables d'instance ainsi qu'aux variables de classe, les méthodes statiques ne peuvent pas accepter l'attribut et la classe en tant que paramètre.

Nous commençons par déclarer une classe intitulée «Student» ainsi que pour lui donner la variable «School_name». Ensuite, nous créons un constructeur. Les variables d'instance soi-même.Nom et soi.ID sont déclarés. Suivant cela, nous implémentons la méthode de classe en créant la fonction «Change_school ()». Cette méthode comprend les paramètres «CLS» et «Name». La méthode statique est donc utilisée. Nous définissons la méthode «find_notebook ()» puis passons l'attribut «Notebook_name». La commande de retour est ensuite utilisée pour produire le résultat souhaité.

Exemple n ° 3

Les attributs existent pour les objets et les classes. Les variables de classe sont contenues dans les attributs de classe, tandis que les variables d'instance font partie des attributs d'objet. Les caractéristiques au niveau de la classe sont accessibles grâce à des méthodes de classe. Cela peut en effet modifier l'état de classe.

Dans cette illustration, une classe intitulée «Worker» avec une variable nommée «Location_name» a été créée. Nous avons créé une fonction appelée init () qui a les variables soi, nom, ainsi que ID. De plus, nous accédons à deux variables de classe différentes et variables d'instance, en conséquence, en utilisant la méthode Show () et la fonction print () deux fois. Le premier commandement imprimé se compose de «travailleur», de soi.nom ', et' soi.id 'comme paramètres. De même, la deuxième commande d'impression comprend «emplacement», «soi.location_name 'comme arguments. Ensuite, en accédant uniquement aux variables de classe, nous avons appelé une méthode de classe et défini la fonction change_location (). La fonction print () serait appliquée deux fois de plus par la méthode de la classe ainsi que son paramètre «CLS». La méthode statique sera construite. Dans cette méthodologie, la fonction find_toolbox () est définie. La commande «retour» est utilisée. Effectuer ces actions, nous avons créé l'objet «ANIS» et invoqué la méthode Show () appropriée.

Exemple n ° 4

Les méthodes statiques ainsi que la classe sont liées à cette même classe. Par conséquent, le nom de classe doit être utilisé pour y accéder.

Dans cet exemple, nous créons le «joueur» de classe et définissons la méthode init (), qui contient deux variables et team_no. La méthode de classe et la méthode statique seraient construites. Dans la méthode de la classe, nous définissons la fonction change_city () qui a deux arguments. La fonction find_accessories () sera définie à l'intérieur de la méthode statique. Cette fonction n'a qu'un seul argument. Par la suite, sous les instructions, nous avons appelé deux fois la fonction print () pour montrer les méthodes statiques et de classe. Après avoir créé un objet appelé «Hammad», nous avons lié individuellement la classe ainsi que des méthodes statiques.

Conclusion

Dans ce guide, nous avons parlé de la classe ainsi que des méthodes statiques à Python, y compris ce qu'elles sont, comment elles sont définies et comment les créer. Pour vous aider à comprendre ce qui se passe à l'intérieur des exemples, ainsi que comment utiliser ces fonctions tout au long de leur parcours de codage, nous avons également inclus quelques détails qui ont distingué ces deux méthodes. Dans chacun de ces cas, les méthodes de classe, ainsi que les méthodes statiques de Python, sont utilisées, ainsi que des méthodes d'instance le cas échéant.