python 静态方法

发布时间:2022-05-11 09:43:57 人气:22 作者:多测师

  定义:是一种普通函数,在类的作用域里面时,不会对任何实例类型进行操作,前面必须要加上一个装饰器

  @staticmethod,我们将这种方法就称为静态方法。

  class A:

  @staticmethod #相当于test = staticmethod(test)

  def test(x,y,z): #把函数test做成静态方法,self和x啥的没有不同都是参数名

  print(x,y,z)

  静态方法与绑定方法的区别:

  1、凡是定义在类的内部,并且没有被任何装饰器修饰过的方法,都是绑定方法:有自动传值功能;

  2、但凡是定义在类的内部,并且被staticmethod装饰器修饰过的方法,都是解除绑定的方法,实际上就函数:

  就没有自动传值功能了。

  使用演示:

  print(type(A.test)) #类型本质就是函数

  A.test(1,2,3) #调用函数应该有几个参数就传几个参数

  a = A() #实例化对象a

  a.test(3,2,1) #对象a在调用test,此时test就是一普通函数,有几个形参就要传几个值

  print(type(a.test)) #类型本质就是函数

python 静态方法

  --------------输出结果-----------------

  #A.test的类型就是函数

  1 2 3

  3 2 1

  #a.test的类型就是函数

  应用场景:

  import time

  class Date:

  def __init__(self,year,month,day):

  self.year=year

  self.month=month

  self.day=day

  @staticmethod

  def now(): #用Date.now()的形式去产生实例,该实例用的是当前时间

  t=time.localtime() #获取结构化的时间格式

  return Date(t.tm_year,t.tm_mon,t.tm_mday) #新建实例并且返回

  @staticmethod

  def tomorrow():#用Date.tomorrow()的形式去产生实例,该实例用的是明天的时间

  t=time.localtime(time.time()+86400)

  return Date(t.tm_year,t.tm_mon,t.tm_mday) #新建实例并且返回

  a=Date('2021',5,11) #实例化对象,自己定义时间

  b=Date.now() #采用当前时间

  c=Date.tomorrow() #采用明天的时间

  print(a.year,a.month,a.day) #打印实例化对象的时间,年,月,日

  print(b.year,b.month,b.day)

  print(c.year,c.month,c.day)

  ----------------输出结果---------------------

  2022 5 11

  2021 4 21

  2021 4 22

  注意:计算机是不知道年、月、日,这个概念的,计算机只知道秒。so,一天的时间,都得换算成秒。

  one_day = 24(小时) * 60(分) * 60(秒) =86400(秒)。

  以上内容为大家介绍了python 静态方法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


上一篇:python 类方法
下一篇:python 类的总结
返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线