在定义一个类时,有时会定义个@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. 运动是如何改造我们的大脑?
  2. 量子位「MEET 2021智能未来大会」来啦!邀智能科技企业共探明日行业新格局
  3. python序列类型-Python之序列类型方法
  4. Spring JDBC-使用XML配置声明式事务
  5. python fonttool_Python wx.Font方法代码示例
  6. C++ 多态实现的三个条件
  7. ·必须《飞鸽~飞鸽传书》
  8. 信息安全工程师笔记-国产密码算法(国密)概念
  9. MySQL基础篇(2)
  10. 从红芯造假事件,看国产软件的两难困境 | 畅言
  11. Delphi ArcEngine 创建比例尺
  12. 4083. 最大公约数
  13. python join用法
  14. font-family 使用设置
  15. Windows 上安装vmware到Ubuntu到python到umake到Pip 到pycharm
  16. 一个SDK打破实时语音社交的“不可能三角”
  17. win10系统与时间服务器同步超时,如何解决Win10系统时间无法同步的问题?
  18. Unity开发者的C#内存管理
  19. SIM卡检测信号故障分析
  20. 《赋能》的读后感作文2800字

热门文章

  1. python入门练习题-python基础知识练习题一
  2. python处理excel表格数据-零基础使用Python读写处理Excel表格的方法
  3. 适合自学python的图书-有哪些适合零编程基础的人学习Python的书?
  4. python入门新手项目-Python入门实战项目有哪些适合新手?
  5. python导入txt为dataframe-python批量读取txt文件为DataFrame的方法
  6. python中常见的流程结构-python常见对象的结构
  7. python工程师证书-【一个合格的Python工程师需要达到怎样的编程水平】
  8. a byte of python-《A Byte of Python》笔记
  9. python真的超过java了吗-java会被python淘汰吗?
  10. python27安装-linux下安装python27 nginx 和uwsgi