在定义一个类时,有时会定义个@staticmethod方法。该类方法,必须定义在类内,不能单独定义在类外。主要是方便将外部函数集成到类体中,美化代码结构,重点在不需要类实例化的情况下调用方法。就是不用对象调用,直接用类来调用。

例:

应用场景:编写类时需要采用很多不同的方式来创建实例,而我们只有一个__init__函数,此时静态方法就派上用场了

class Date:def __init__(self,year,month,day):self.year=yearself.month=monthself.day=day@staticmethoddef now(): #用Date.now()的形式去产生实例,该实例用的是当前时间t=time.localtime() #获取结构化的时间格式return Date(t.tm_year,t.tm_mon,t.tm_mday) #新建实例并且返回@staticmethoddef tomorrow():#用Date.tomorrow()的形式去产生实例,该实例用的是明天的时间t=time.localtime(time.time()+86400)return Date(t.tm_year,t.tm_mon,t.tm_mday)a=Date('1987',11,27) #自己定义时间
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)

转载于:https://www.cnblogs.com/gwj99/p/7641584.html

类中的@staticmethod相关推荐

  1. 类中的属性和方法(Python入门三十三)

    # 定义一个类 class A(object): # 类属性     # 实例属性     # 类方法     # 实例方法     # 静态方法 # 类属性,直接在类中定义的属性是类属性     # ...

  2. python @classmethod 和 @staticmethod区别,以及类中方法参数cls和self的区别

    一.@classmethod 和 @staticmethod 1.staticmethod 作用:让类中的方法变成一个普通函数(普通函数没有绑定在任何一个特定的类或者实例上.所以与不需要对象实例化就可 ...

  3. 类中的方法分类及propety,classmethod,staticmethod 装饰器

    类空间中有: 静态属性: 所有对象动统一拥有的属性 方法 类方法 :不使用类中的命名空间也不使用对象的命名空间:一个普通函数,没有默认参数 ,cls 表示类 self 表示对象,自动传值为类名,类可以 ...

  4. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  5. python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解

    我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器. 代码如下: class Test(): xx = False def __init__(self): pa ...

  6. Python中的 @staticmethod@classmethod方法

    Python面向对象编程中,类中定义的方法可以是 @classmethod 装饰的类方法,也可以是 @staticmethod 装饰的静态方法,用的最多的还是不带装饰器的实例方法,如果把这几个方法放一 ...

  7. python类中方法调用自己类的方法_python怎么调用类方法

    python中的类用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 要想调用类中的方法,首先要定义一个类,python中定义类使用class关键字 ...

  8. python 中的static-method (静态函数), classmethod(类函数 ), 成员函数

    python 中的static-method (静态函数), classmethod(类函数 ), 成员函数 简介 类似Java.CPP中的类,可以定义static method.class meth ...

  9. python中@staticmethod_Python中的@staticmethod和@classmethod的区别

    一直搞不明白,类方法和静态方法的区别,特意研究了一下,跟大家分享一下. 为了方便大家了解两者的差别,以下的示例代码将有助于发现其中的差别: class A(object): def foo(self, ...

最新文章

  1. Android 截屏并写入SD卡中
  2. 在 Windows 下安装 Oracle 11g XE (Express Edition)
  3. owasp十大漏洞_OWASP十大网络应用安全漏洞
  4. ubuntu 命令卡住_如何在Ubuntu系统中重置root密码
  5. koa --- 使用中间件多层级抛出错误
  6. 2012禁用ip隧道 win_Windows 7下关闭IPV6隧道的技巧方法
  7. CGI(通用网关接口)
  8. 数据迁移期间进程命令
  9. 一元流量参数为null_精益SQL —— “NULL”真烦人
  10. 金蝶K3常用数据表(整理)
  11. 为保证云应用及虚拟串口功能正常使用,请务必下载安装Windows系统环境补丁
  12. 中医笔记2-入定、打坐
  13. 旭凤锦覓虐心 恋只愿共赴鸿蒙,【香蜜同人】所爱隔山海(旭凤X锦觅X润玉)
  14. html如何链接icon,iconfont在线链接使用
  15. 大型网站建设方案(学院网站建设方案)
  16. word拆分表格宽度发生大小变化问题
  17. 解决selenium实例化时警告问题
  18. Spring中两种编程式事务管理
  19. 将ESXI上的虚拟机导出为OVF模板
  20. FreeRTOS学习 消息队列

热门文章

  1. python学到什么程度可以写爬虫-刚开始学习 Python 到可以写出一个爬虫大约需要多长时间...
  2. python 代码-20个Python代码段,你需要立刻学会,好用到哭!
  3. python编程软件例子-软件开发|10 个 Python 图像编辑工具
  4. python完全新手教程-Python完全新手教程
  5. python语言入门p-python初学者怎么入门
  6. 学python比较好的书-学习Python比较好的书籍推荐
  7. python怎么安装matplotlib-python 安装matplotlib
  8. python web为什么不火-pythonweb为什么不火-问答-阿里云开发者社区-阿里云
  9. python处理excel教程实例-python 读写excel文件操作示例【附源码下载】
  10. 学python就业要看哪些书-学习Python适合就业哪些岗位?老男孩Python学习