Python进阶实例 第15例: 静态方法和类方法

在 Python 中,类的方法有三种:

  1. 实例方法:第一个参数是 self,只能通过对象调用。
  2. 类方法:第一个参数是 cls,由 @classmethod 装饰,可以通过类或对象调用,通常用于操作类级别的数据。
  3. 静态方法:用 @staticmethod 装饰,不需要 self 或 cls 参数,逻辑上与类相关但不依赖实例或类。

问题描述:

我们要实现一个 MathUtils 类:

  • 提供一个静态方法 add(x, y) 用于加法运算;
  • 提供一个类方法 circle_area(cls, r) 计算半径为 r 的圆面积;
  • 使用普通实例方法返回一个字符串。

代码示例:

import math

class MathUtils:
    # 静态方法:不依赖类或对象
    @staticmethod
    def add(x, y):
        return x + y

    # 类方法:依赖类本身 (cls)
    @classmethod
    def circle_area(cls, r):
        return math.pi * (r ** 2)

    # 普通实例方法
    def hello(self, name):
        return f"Hello, {name}!"

# 使用示例
print("静态方法:", MathUtils.add(3, 5))
print("类方法:", MathUtils.circle_area(10))

obj = MathUtils()
print("实例方法:", obj.hello("Alice"))

运行结果:

静态方法: 8
类方法: 314.1592653589793
实例方法: Hello, Alice!

总结:

  • 实例方法:操作实例数据,必须通过对象调用。
  • 类方法:操作类级别数据,可以通过类或对象调用。
  • 静态方法:逻辑上属于类,但不依赖实例或类,通常用作工具函数。
原文链接:,转发请注明来源!