Python 普通方法 静态方法 类方法的定义和使用场景

Python 普通方法 静态方法 类方法的定义和使用场景

类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响。以Dog类为例,类就像一个对象工厂,可以生产一个或多个实例对象。

class food(object):
        def get_food(self, n):
            	print "%s,%s" % (self,n)
        @staticmethod
        def get_static_food(n):
                print " %s,%s" % (self,n)
        @classmethod
        def get_class_food(cls, n):
                print "%s,%s" % (cls,n)

my_class = food() # 实例化 ,my_class是实例对象

区别

  1. 调用静态方法可以无需创建对象,静态方法参数没有实例参数 self, 也就不能调用实例参数

  2. 类方法可以被对象调用,也可以被实例调用;传入的都是类对象,主要用于工厂方法,具体的实现就交给子类处理

  3. 实例方法是一个普通的函数,类方法和静态方法都是通过函数装饰器的方式实现的;

  4. 实例方法需要传入self,类方法需要传入cls参数,静态方法无需传入self参数或者是cls参数(但不等同于不能传入参数)
    应用场景:
    类方法不需要创建实例对象,直接处理类对象的逻辑;静态方法将与类对象相关的某些逻辑抽离出来,不仅可以用于测试,还能便于代码后期维护。
    实例方法和类方法能够改变实例对象或类对象的状态,而静态方法不能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值