学科分类
目录
基础

静态方法

静态方法与实例方法有以下不同:

(1) 静态方法没有self参数,它需要使用@staticmethod修饰;

(2) 静态方法中需要以“类名.方法/属性名”的形式访问类的成员;

(3) 静态方法即可由对象调用,亦可直接由类调用。

定义一个包含属性num与静态方法static_method()的类Example,示例代码如下:

class Example:
    num = 10     # 类属性
    @staticmethod  # 定义静态方法
    def static_method():
        print(f"类属性的值为:{Example.num}")
        print("---静态方法")

创建Example类的对象example,使用对象example与类Example分别调用静态方法static_method(),示例代码如下:

example = Example()    # 创建对象
example.static_method() # 对象可以调用
Example.static_method() # 类也可以调用

运行程序,结果如下所示:

类属性的值为:10
---静态方法
类属性的值为:10
---静态方法

从输出结果可以看出,类和对象均可以调用静态方法。

脚下留心:类方法和静态方法的区别

类方法和静态方法最主要的区别在于类方法有一个cls参数,使用该参数可以在类方法中访问类的成员;静态方法没有任何默认参数(如cls),它无法使用默认参数访问类的成员。因此,静态方法更适合与类无关的操作,例如一些工具类,用户只需要根据传入参数进行操作即可。

点击此处
隐藏目录