Python实例化方法、类方法、静态方法

实例化方法便是我们最常见的第一个参数为self

类方法是在方法前加一个@classmethod装饰器

静态方法是在方法前加一个@staticmethod装饰器(PS:实例对象的权限最大。)

实例化方法

实例化方法就是类的示例能够使用的方法,比如下面这种print_name方法,它传入self这个类的实例:

那我们调用这个实例化方法的时候就必须实例化我们的对象来调用了:

 可能会有疑问,为什么非要实例化呢,我传入的是self啊,跟我的类的实例有关系吗?其实我们传入的self就是类的示例,因此self并不是关键字,我们可以把self换成任意都能得到一样的结果:

 结果依然是xiaoming!

 因此,这就是实例化方法为什么要写self,并且一定要实例化对象才能调用!因为传入的self其实就是我们的实例化对象!

类方法:

 与我们的实例化方法相比,类方法在方法的前面加了个classmethod关键字,并且传入的不是self

而是cls。

类方法使用的场景:

原则上,类方法是将类本身作为对象进行操作的方法。假设有个方法,且这个方法在逻辑上采用类本身作为对象来调用更合理,那么这个方法就可以定义为类方法。另外,如果需要继承,也可以定义为类方法。具体使用场景可见这篇博客:Python 实例方法、类方法、静态方法的区别与作用 - 失恋的蔷薇 - 博客园 (cnblogs.com)

而在调用上,类方法不需要实例化对象才能调用:

 可以看到在第6行是Person.而不是Person().所以类方法不需要实例化!

静态方法:

静态方法,其实就是我们学过的函数,和函数唯一的区别是,静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中。
静态方法没有类似 self、cls 这样的特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。也正因为如此,类的静态方法中无法调用任何类属性和类方法。可以理解为,静态方法是个独立的、单纯的函数,它仅仅托管于某个类的名称空间中,便于使用和维护。

比如:

可以看到,静态方法不需要传入任何参数,往往设置为一些与类无关的函数!

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值