python装饰器类方法classmethod的使用场景

 更新时间:2023年06月16日 11:29:27   作者:软件开发技术修炼  
这篇文章主要为大家介绍了python装饰器类方法classmethod的使用场景,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

【ps: 最近遇到的@classmethod比较多,故温故下其用法,一篇例子足以了解】

功能:讲解 @classmethod的使用

1、类中创建一个成员函数,用@classmethod装饰,作用类似静态类,但不一样的是可传递类参数;

2、调用方法:先用函数对字符串进行处理,再使用Date_test2类的构造函数初始化;

3、好处是:重构类时,不必修改构造函数,只需额外添加要处理的函数即可,然后使用装饰符@classmethod

@classmethod机制,可用一种与构造器相仿的方式来构造类的对象

# -*- coding: utf-8 -*-
'''
@Time    : 2023/6/12 11:36
@Author  : Celeste
@File    : classmethod_.py
'''
class Date_test2(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
    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 :", self.year)
        print("month :", self.month)
        print("day :", self.day)
t = Date_test2(2020,3,6)
t.out_date()
r = Date_test2.get_date("2023-6-12")
r.out_date()

本场景可看到的好处:

1、将处理的函数统一放入类中,使代码更加简洁

2、可以同时支持两种输入格式。

a:“2019,10,26”,

b:“2019-10-26”

3、使代码更加容易维护

类方法与静态方法@staticmethod的区别及使用场景

一般情况下,我们的类方法,和静态方法多出现在工具类中,也就是不需要创建对象就可以调用的方法。

类方法:在方法中只使用类属性和类方法时,我们使用类方法。
静态方法:当方法中,既不是用类的属性和方法,也不适用实例的属性和方法时,我们使用静态方法。

类方法的应用范围比静态方法的使用场景要多一些,如果实在拿不定注意,就先写类方法, 如果发现cls参数并没有被使用,那么我们就可以切换为静态方法了。

以上就是python装饰器类方法classmethod的使用场景的详细内容,更多关于python装饰器类classmethod的资料请关注脚本之家其它相关文章!

相关文章

  • 利用pygame完成动画精灵和碰撞检测

    利用pygame完成动画精灵和碰撞检测

    这篇文章主要介绍了利用pygame完成动画精灵和碰撞检测,代码详细,内容丰富,对于想要学习pygame的朋友来讲是一个不错的练习,需要的朋友可以参考下
    2021-04-04
  • Python 添加命令行参数步骤

    Python 添加命令行参数步骤

    这篇文章主要介绍了Python 添加命令行参数步骤,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Python实现在线音乐播放器

    Python实现在线音乐播放器

    这篇文章主要为大家详细介绍了Python实现在线音乐播放器的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • scrapy结合selenium解析动态页面的实现

    scrapy结合selenium解析动态页面的实现

    这篇文章主要介绍了scrapy结合selenium解析动态页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python实现Canny及Hough算法代码实例解析

    Python实现Canny及Hough算法代码实例解析

    这篇文章主要介绍了Python实现Canny与Hough算法代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 关于Python中的向量相加和numpy中的向量相加效率对比

    关于Python中的向量相加和numpy中的向量相加效率对比

    今天小编就为大家分享一篇关于Python中的向量相加和numpy中的向量相加效率对比,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 针对Pandas的总结以及数据读取_pd.read_csv()的使用详解

    针对Pandas的总结以及数据读取_pd.read_csv()的使用详解

    这篇文章主要针对Pandas总结以及数据读取_pd.read_csv()的使用详解做出了实例,讲解非常全面,值得收藏,需要的朋友可以参考下
    2023-03-03
  • Java基础技术之反射详解

    Java基础技术之反射详解

    这篇文章主要介绍了Java基础技术之反射详解,反射就是把Java类中的各个部分,映射成一个个的Java对象,拿到这些对象后可以做一些事情,需要的朋友可以参考下
    2023-07-07
  • Python Streamlit制作交互式可视化网页应用实例

    Python Streamlit制作交互式可视化网页应用实例

    这篇文章主要为大家介绍了Python Streamlit制作交互式可视化网页应用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • python中使用pyhook实现键盘监控的例子

    python中使用pyhook实现键盘监控的例子

    这篇文章主要介绍了python中使用pyhook实现键盘监控的例子,包含pyhook的下载地址和手册地址及一个Windows下的监控实例,需要的朋友可以参考下
    2014-07-07

最新评论