@classmethod与@staticmethod区别

本文介绍了Python中定义类方法的三种方式:常规方法、@classmethod和@staticmethod。普通方法用于操作实例属性,静态方法作为组织代码的手段,与类相关但不依赖实例。类方法可通过类或实例调用,常用于类相关的操作,如计数或预处理数据。通过示例展示了类方法如何影响实例和类属性,并给出了类方法适用的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Python中有3种方式定义类方法分别是常规方式、@classmethod修饰方式、@staticmethod修饰方式。

接下来分别对3种不同方式的定义举例说明。

普通方法: 其实就是需要操作一些实例独有的属性,是实例而不是类。第一个参数一般是隐式地将实例传递给self参数。

class People():
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender
    
    def greeting(self):
        return f'Hello, {self.name}'

p = People('Anders', 'Male')
p.greeting()

# 输出内容:
# 'Hello, Anders'

@staticmethod: 静态方法其实就是一个普通的函数,可以使用类名直接调用,很多人不太明白的是为什么不直接把静态方法放在类外调用呢,毕竟效果一样,但是从代码逻辑从属

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值