python @staticmethod @classmethod

@staticmethod和@classmethod都不需要进行实例化即可调用方法函数,都可以 类名.函数名()或类名().函数名() 方式进行调用
@staticmethod调用时可以不需要class类参数self。
@classmethod调用时需要cls参数(个人理解也就是self参数),@classmethod方法是可以将参数执行之后返回一个初始化的新类

具体可看下面代码理解:

class Add:
  @staticmethod
  def add(a,b):
    c = a+b
    print(c)
    # return c


class Data_test(object):
    day=0
    month=0
    year=0
    def __init__(self,year=0,month=0,day=0):
        self.day=day
        self.month=month
        self.year=year

    # @classmethod
    @staticmethod
    def get_date(cls,string_date):
        #这里第一个参数是cls, 表示调用当前的类名
        year,month,day=map(int,string_date.split('-'))
        date1=cls(year,month,day)
        #返回的是一个初始化后的类
        return date1

    def out_date(self):
        print ("year :")
        print (self.year)
        print ("month :")
        print (self.month)
        print ("day :")
        print(self.day)




if __name__ == "__main__":
  print("********************this file is test classmethod and staticmethod**********************")
  Add.add(1,2)
  Add().add(1,3)
  t=Data_test(2016,8,1)
  
  t = Data_test.get_date("2016-8-1")
  t.out_date()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值