Méthodes statiques et méthodes de classe
Méthodes d'instance / méthodes d'objet Les méthodes d'instance, ou méthodes d'objet, font référence à des méthodes que nous
ne pouvons utiliser qu'après l' instanciation des méthodes ordinaires définies dans la classe . Le premier paramètre formel de cette méthode doit recevoir l'objet lui-même
Méthode statique
1 Format: ajoutez @staticmethod à la méthode
2. Paramètres: les méthodes statiques peuvent avoir des paramètres ou aucun paramètre
3. Scénarios d'application: généralement utilisés pour l'objet de classe et le code indépendant de l'objet d'instance
4. Utilisation: nom de classe. Nom de méthode statique ( Ou nom d'objet. Nom de méthode statique)
classe Dog: la @property DEF EAT (auto): Imprimer ( " manger les os " ) # Dog.eat () # méthode ordinaire ne peut être appelé par des objets façon d'utiliser Dog = Dog () dog.eat # mangent les os
# Les méthodes statiques ne peuvent pas être utilisés dans les propriétés de classe ou d' instance et des méthodes de classe du jeu: @staticmethod DEF show_menu (le X-): Imprimer (le X-) Imprimer ( « bouton de démarrage 1 » ) Imprimer ( « bouton pause 2 » ) d'impression ( " bouton Fin 3 " ) # G = jeu () # g.show_menu () Game.show_menu (2 ) # 2 # bouton de démarrage 1 # bouton pause 2 # bouton fin 3
Méthode de classe
Pas besoin d'instancier, vous pouvez appeler directement la méthode via la classe, mais le premier paramètre de la méthode doit reprendre la classe elle-même
1. Ajoutez @classmethod à la
méthode 2. Le paramètre de la méthode est cls ou d'autres noms, mais la valeur par défaut est généralement cls
3.cls pointe vers des objets de classe
4. Scénario d'application: lorsqu'une méthode n'implique que des propriétés statiques, vous pouvez utiliser des méthodes de classe (les méthodes de classe sont utilisées pour modifier les propriétés de classe)
5. L'utilisation peut être le nom de l'objet. Ou nom de classe. Nom de méthode de classe
classe la personne: Rôle = « humain » @classmethod DEF Test (CCRS): # Le premier argument doit être les objets de classe actuels, propriétés et méthodes de croisement de classe cls (attributs et méthodes ne peuvent pas passer par exemple) Imprimer (cls.role) Imprimer ( " ---- ---- dans le test " ) # Person.test () p1 = la personne () p1.test () # humaine # ---- ---- dans le test