python中的@staticmethod

众所周知,python是一门面向对象的编程语言,里面有个注解是

@staticmethod

如果某一个方法需要访问到对象的实例属性,可以把这个方法封装成一个实例方法。

如果某一个方法不需要访问对象的实例属性,但是需要访问到类的类属性,可以把这个方法封装成一个类方法。

一个实例方法, 一个类方法,这是两种方法类型。

但是还有一种情况,如果要封装的某一个方法,既不需要访问到对象的实例属性,也不需要访问类的类属性,可以考虑把这个方法封装成一个静态方法

@staticmethod
def 静态方法名():
    方法内容

静态方法的不同之处就是它可以存在于类中,不同实例化类也可以调用。

需要通过装饰器 @staticmethod 来进⾏修饰, 静态⽅法既不需要传递类对象也不需要传递实例对象(形参没有self和cls ) 。

静态⽅法也能够通过 实例对象 和 类对象 去访问。

当⽅法中 既不需要使⽤实例对象 ( 如实例对象,实例属性 ) , 也不需要使⽤类对象 ( 如类属性、类⽅法、创建实例等) 时,定义静态⽅法

class People(object):
    @staticmethod
    def information():
        print('这是⼀个人类,⽤于创建人实例')
 
 
xiaoming = People()
# 静态⽅法既可以使⽤对象访问⼜可以使⽤类访问
xiaoming.information()
People.information()

运行结果:

这是⼀个人类,⽤于创建人实例

这是⼀个人类,⽤于创建人实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值