Maison  >  Article  >  développement back-end  >  Une brève analyse des méthodes d'instance Python, des méthodes de classe et des méthodes statiques de méthode de classe

Une brève analyse des méthodes d'instance Python, des méthodes de classe et des méthodes statiques de méthode de classe

Go语言进阶学习
Go语言进阶学习avant
2023-07-25 16:09:381328parcourir

1. Introduction

Les méthodes de classe peuvent également être divisées plus en détail, notamment en méthodes de classe, méthodes d'instance et méthodes statiques.


2. Explication détaillée du cas

  1. Méthode d'instance

    Habituellement, les méthodes définies dans la classe sont des méthodes d'instance par défaut.

Exemple :

class CLanguage:
    # 类构造方法,也属于实例方法
    def __init__(self):
        self.name = "百度"
        self.add = "www.baidu.com"


    # 下面定义了一个say实例方法
    def say(self):
        print("正在调用 say() 实例方法")

Appelez la méthode say() pour implémenter la fonction.

clang = CLanguage()
clang.say()

Résultat d'exécution :

Une brève analyse des méthodes d'instance Python, des méthodes de classe et des méthodes statiques de méthode de classe

Remarque :

Les méthodes d'instance doivent également contenir au moins un paramètre self, qui est utilisé pour lier l'objet d'instance qui appelle cette méthode.

  1. Méthode de classe

Python 类方法和实例方法相似,它最少也要包含一个参数,只不过类方法中通常将其命名为 cls,Python 会自动将类本身绑定给 cls 参数(注意,绑定的不是类对象)。所以在调用类方法时,无需显式为 cls 参数传参。

和实例方法最大的不同在于,类方法需要使用@classmethod修饰符进行修饰。

例:

class ass:
    #类构造方法,也属于实例方法
    def __init__(self):
        self.name = "百度"
        self.add = "www.baidu.com"
    #定义了一个类方法
    @classmethod
    def info(cls):
        print("正在调用类方法",cls)

如果没有 @classmethod,则 Python 解释器会将 fly() 方法认定为实例方法,而不是类方法。

类方法推荐使用类名直接调用。

#使用类名直接调用类方法
ass.info()
#使用类对象调用类方法
clang = ass()
clang.info()

运行结果:

Une brève analyse des méthodes d'instance Python, des méthodes de classe et des méthodes statiques de méthode de classe

  1. 类静态方法

静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。

静态方法没有类似 self、cls 这样的特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。

静态方法需要使用@staticmethod修饰。

例:

class ass:
    @staticmethod
    def info(name, add):
        print(name, add)

静态方法可以使用类名,类对象两种方式进行调用。

# 使用类名直接调用静态方法
ass.info("百度1", "www.baidu.com")
# 使用类对象调用静态方法
clang = ass()
clang.info("百度2", "www.baidu.com")

运行结果:

Une brève analyse des méthodes d'instance Python, des méthodes de classe et des méthodes statiques de méthode de classe


三、总结

本文基于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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer