在 Python 中,类的方法有三种:
- 实例方法:第一个参数是 self,只能通过对象调用。
- 类方法:第一个参数是 cls,由 @classmethod 装饰,可以通过类或对象调用,通常用于操作类级别的数据。
- 静态方法:用 @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!
总结:
- 实例方法:操作实例数据,必须通过对象调用。
- 类方法:操作类级别数据,可以通过类或对象调用。
- 静态方法:逻辑上属于类,但不依赖实例或类,通常用作工具函数。
