python 静态方法和类方法

静态方法(Static Method)

静态方法是指:

尽管定义和使用上和普通的函数完全相同,但通常要在某个类型中定义,;
通过 类型 和 实例 都能调用;
定义静态方法时不用额外指定第一个参数,Python也不会隐式地传递任何内容作为第一个参数;
使用装饰器 @staticmethod 来定义静态方法;

>>> class A(object):
	     @staticmethod
	     def f(x, y): return x + y

>>> A.f(1, 9)
10
>>> a = A()
>>> a.f(1,9)
10

类方法(Class Method)

类方法是指:

定义时的第一个参数为一个类型 cls ,调用类方法时Python自动地将调用该方法的类型(或者调用该方法的实例所属的类型)传递给类方法的首个参数;
通过 类型 和 实例 都能够调用;
使用装饰器 @classmethod 定义类方法

>>> class A(object):
	     @classmethod
	     def f(cls, x):
	         print 'class name: %s.' % cls.__name__
	         print 'the argument you passed in: %s.' %x

>>> A.f('hello')
class name: A.
the argument you passed in: hello.
>>> a = A()
>>> a.f('world')
class name: A.
the argument you passed in: world.

类方法的最大特点是定义时的第一个参数代表调用该方法的类型或实例所属的类型,而Python会隐式地将这个类型对象传给类方法。静态方法和类方法都是类级方法,不同于实例方法。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值