Partage de technologie

Le didacticiel de programmation orientée objet le plus adapté aux débutants sur Internet : 14 implémentations Python de classes et d'objets - Pouvez-vous faire la différence entre les méthodes statiques et les méthodes de classe d'une classe ?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Le didacticiel de programmation orientée objet le plus adapté aux débutants sur Internet : 14 implémentations Python de classes et d'objets - Pouvez-vous faire la différence entre les méthodes statiques et les méthodes de classe d'une classe ?

Résumé:

Cet article présente principalement les méthodes de classe et les méthodes statiques dans les classes et les objets en Python, ainsi que les définitions, les caractéristiques, les scénarios d'application et les méthodes d'utilisation des méthodes de classe et des méthodes statiques, et compare les deux.

Lien d'origine :

Blog de FreakStudio

Recommandé dans le passé :

Peut-être le tutoriel de programmation orientée objet le plus adapté pour débuter sur Internet : Python Implementation - une lecture incontournable pour les passionnés de l'embarqué !

Le tutoriel de programmation orientée objet le plus adapté pour débuter sur tout Internet : 00 Introduction aux méthodes de conception orientée objet

Le tutoriel de programmation orientée objet le plus adapté sur Internet pour débuter : 01 Concepts de base de la programmation orientée objet

Le tutoriel de programmation orientée objet le plus adapté sur Internet pour débuter : 02 Implémentation Python des classes et des objets - utiliser Python pour créer des classes

Le tutoriel de programmation orientée objet le plus adapté pour débuter sur Internet : 03 Implémentation Python des classes et des objets - ajout d'attributs aux classes personnalisées

Le tutoriel de programmation orientée objet le plus adapté pour débuter sur Internet : 04 Implémentation Python des classes et des objets - ajout de méthodes aux classes personnalisées

Le tutoriel de programmation orientée objet le plus adapté aux débutants sur Internet : 05 Implémentation Python des classes et des objets - Balises de code PyCharm

Le tutoriel de programmation orientée objet le plus adapté aux débutants sur Internet : 06 Implémentation Python des classes et des objets - encapsulation des données des classes personnalisées

Le tutoriel de programmation orientée objet le plus adapté aux débutants sur Internet : 07 Implémentation Python des classes et des objets - type annotations

Le tutoriel de programmation orientée objet le plus adapté aux débutants sur Internet : 08 Implémentation Python des classes et des objets-@property decorator

Le tutoriel de programmation orientée objet le plus adapté aux débutants sur Internet : 09 Implémentation Python des classes et des objets - la relation entre les classes

Le didacticiel de programmation orientée objet le plus adapté aux débutants sur Internet : 10 implémentations Python de classes et d'objets - héritage de classe et principe de substitution de Liskov

Le didacticiel de programmation orientée objet le plus adapté aux débutants sur Internet : implémentation Python de 11 classes et objets - la sous-classe appelle la méthode de classe parent

Le didacticiel de programmation orientée objet le plus adapté aux débutants sur Internet : implémentation Python de 12 classes et objets - Python utilise le module de journalisation pour générer les journaux d'exécution du programme

Le tutoriel de programmation orientée objet le plus adapté aux débutants sur Internet : Implémentation Python de 13 classes et objets - Installation et utilisation de l'artefact visuel de lecture de code Sourcetrail

Du contenu plus passionnant à regarder :

Brève analyse du système de débogage CM3

Après un demi-mois de travail, une synthèse de la stack technologique embarquée est publiée

Secrets d'arts martiaux gagnants en compétition : 05. Comment diviser le contenu de travail et d'étude de l'équipe nationale de récompense dans les compétitions informatiques électroniques

Secrets d'arts martiaux gagnants en compétition : 04 Un guide rapide et incontournable pour le développement intégré dans les compétitions électroniques

Secrets d'arts martiaux gagnants du concours : 03 Bons choix créatifs - la condition préalable la plus nécessaire pour remporter le prix national

Secrets d'arts martiaux gagnants de la compétition : 02 National Award Secrets - Un processus de démarrage rapide pour les compétitions informatiques des étudiants, une lecture incontournable pour les débutants

Secrets d'arts martiaux gagnants des compétitions : 01 Comment voyez-vous le phénomène du « roulage », des « événements ancestraux » et de la « recherche de connexions » dans les compétitions universitaires contemporaines ?

Secrets d'arts martiaux gagnants du concours : 00 Concours de sujets - un sujet que les étudiants en école d'ingénieur ne peuvent pas éviter. Que savez-vous ?

Les "secrets d'arts martiaux" des compétitions électroniques et informatiques - Concours électronique Concours de conception optoélectronique Concours de conception informatique Concours de conception de puces et de systèmes embarqués, tout ce dont vous avez besoin est ici !

Documentation et acquisition de code :

Vous pouvez visiter le lien suivant pour télécharger le document :

https://github.com/leezisheng/Doc

image

Ce document présente principalement comment utiliser Python pour la programmation orientée objet et nécessite que les lecteurs aient une compréhension de base de la syntaxe Python et du développement de microcontrôleurs. Comparé à d'autres blogs ou livres expliquant la programmation orientée objet Python, ce document est plus détaillé et se concentre sur les applications informatiques hôtes intégrées. Il utilise l'envoi et la réception de données sur le port série commun, le traitement des données, le dessin de graphiques dynamiques, etc. et un ordinateur inférieur comme exemples d'application, et utilisez le logiciel de code Sourcetrail pour lire visuellement le code afin de faciliter la compréhension des lecteurs.

Les exemples de liens de code pertinents sont les suivants :https://github.com/leezisheng/Python-OOP-Démo

texte

méthode statique

En prenant la classe SensorClass comme exemple, les méthodes dites InitSensor, StartSensor, StopSensor, etc. définies dans la classe sontMéthodes d'objet, c'est-à-dire que ces méthodes sont toutes des messages envoyés à l'objet, et elles appellent toutes les propriétés de l'objet.En fait, les méthodes que nous écrivons dans la classe n'ont pas besoin d'être des méthodes objet. Certaines méthodes de la classe n'ont pas besoin d'appeler des attributs d'objet. Par exemple, dans la méthode InitSensor, nous devrons peut-être déterminer si l'attribut actuel est utilisé. Le port COM existe. Évidemment, cette méthode est différente des objets Sensor qui ne sont pas pertinents.

Pour un autre exemple, nous définissons une classe "Triangle", construisons un triangle en passant trois longueurs de côté et fournissons des méthodes pour calculer le périmètre et l'aire. Cependant, les trois longueurs de côté transmises peuvent ne pas être en mesure de construire un objet triangle, donc. on peut d'abord écrire Une méthode pour vérifier si trois longueurs de côtés peuvent former un triangle. Cette méthode n'est évidemment pas une méthode objet, car l'objet triangle n'a pas été créé lorsque cette méthode est appelée (car on ne sait pas si les trois côtés peuvent former un triangle. former un triangle), cette méthode est donc une classe Triangle mais pas un objet triangle.on peut utiliserméthode statiquePour résoudre ce genre de problème, le code est le suivant.

@staticmethod
    _# 判断传感器ID号是否正确:这里判断ID号是否在0到99之间_
    def IsTrueID(id:int = 0):
        if id >= 0 and id <= 99:
            return True
        else:
            return False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Les méthodes statiques sont en fait les fonctions que nous avons apprises. La seule différence entre elles et les fonctions est que les méthodes statiques sont définies dans l'espace de la classe (espace de noms de classe), tandis que les fonctions sont définies dans l'espace où se trouve le programme (espace de noms global). . Les méthodes statiques n'ont pas de paramètres spéciaux tels que self et cls, donc l'interpréteur Python n'effectuera aucune liaison de classe ou d'objet pour les paramètres qu'il contient. Pour cette raison, aucun attribut de classe ni méthode de classe ne peut être appelé dans les méthodes statiques d'une classe. Ici, nous définissons la méthode statique IsPort pour déterminer si le numéro d'identification du capteur est correct. La méthode statique doit être modifiée avec @staticmethod. Pour appeler une méthode statique, vous pouvez utiliser soit un nom de classe, soit un objet de classe, par exemple :

_    # 设置ID号_
    id = 1
_    # 判断ID号是否符合格式_
    if SensorClass.IsTrueID(id):
        s = SensorClass()
    else:
        print("Sensor Init False")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

image

méthode de classe

Semblable aux méthodes statiques, Python peut également définir des méthodes de classe dans la classe. Le premier paramètre de la méthode de classe est classiquement nommé cls, qui représente l'objet d'informations lié à la classe actuelle (la classe elle-même est également un objet, et dans certains cas). lieux Appelé l'objet de métadonnées de la classe), grâce à ce paramètre, nous pouvons obtenir des informations relatives à la classe et créer des objets de la classe. Python liera automatiquement la classe elle-même au paramètre cls (notez qu'elle n'est pas liée à l'objet de classe. ) . En d’autres termes, lorsque nous appelons la méthode de classe, nous n’avons pas besoin de transmettre explicitement des paramètres pour le paramètre cls.

Les méthodes de classe doivent être modifiées à l'aide du modificateur @classmethod. Nous définissons la méthode de classe MasterInfo dans MasterClass. L'exemple de code est le suivant :

@classmethod
    def MasterInfo(cls):
        print("Info : "+str(cls))

print(MasterClass.MasterInfo())
  • 1
  • 2
  • 3
  • 4
  • 5

image

Insérer la description de l'image ici