首页 > 编程语言 >python中的@classmethod和@staticmethod的作用

python中的@classmethod和@staticmethod的作用

时间:2023-07-17 18:55:48浏览次数:58  
标签:python self classmethod 实例 sec staticmethod print class

class A(object):
    bar = 1
    def func1(self):
           print("foo")
    @classmethod
    def func2(cls):
        print("func2")
        print(cls.bar)
        cls().func1()

A.func2()

@classmethod的作用实际时可以在class内部实例化class。作用就是比u输入的数据需要清晰一遍再实例化,可以把清洗函数定义在class内部并加上@classmethod装饰器已达到减少代码的目的。总结起来就是:@classmethod可以用来为一个类创建一些预处理的实例。

 

@staticmethod用于修饰类中的方法,使其可以在不创建类实例的情况下调用方法,这样做的好处是执行效率比较高。当然,也可以像一般的方法一样用实例调用该方法。该方法一般称为静态方法,静态方法不可以引用类中的属性或方法,其参数列表也不需要约定的默认参数self。

class Time(object):
    def __init__(self,sec):
        self.sec = sec
    @staticmethod
    def sec_minutes(s1,s2):
        return abs(s1-s2)

t= Time(10)
print(Time.sec_minutes(10,5),t.sec_minutes(t.sec,5))

分别使用类名调用和使用实例调用静态方法,结果为5,5

 

标签:python,self,classmethod,实例,sec,staticmethod,print,class
From: https://www.cnblogs.com/mululu/p/17560921.html

相关文章

  • python
    #不需要定义变量##while循环:#while条件:#xxx#xxx#for循环:#for临时变量in范围容器(可用range,如果是容器的话,就是遍历,如果in10,就是遍历0-10)#for循环的范围是大于等于第一个小于最后一个,也就是inti=0;i<n;i++#输入......
  • python日志调试
    1.日志logging.debug():最低级别,用于小细节,通常用于在诊断问题时,才会关心谢谢消息logging.info():用于记录程序中一般事件的信息,或确认一切工作正常logging.warning():用于表示可能的问题,它不会阻止程序的工作,但将来可能会logging.error():用于记录错误,它导致程序做某事失败logg......
  • python:基础语法(002)
    python的关键字:#打印python都有哪些关键字importkeywordprint(keyword.kwlist) 缩进:缩进快捷键Tab 多行语句:按回车键即可换行,用\反斜杠也可以换行 python的引号:python中可以使用单引号、双引号、三引号#单引号print('你好')#双引号print("你好")#三引......
  • Python学习——Day 7
    列表·列表需要使用中括号[],元素之间使用英文的逗号进行分隔·列表的创建方式      ·使用中括号      ·调用内置函数list()·列表的特点·列表元素的增加操作#向列表末尾添加一个元素lst=[10,20,30]print('添加元素之前',lst,id(lst))lst.appen......
  • python实现跨域代理服务器
    准备环境python3.7+依赖:aiohttp代码实现(代理服务器,返回响应体和进行跨域处理后的headers)importaiohttpfromfunctoolsimportwrapsfromaiohttpimportwebcorscode={'Access-Control-Allow-Origin':'*','Access-Contr......
  • python爬取之url管理器
    classUrlManager():#url管理器def__init__():#设置新老url数组,分别为未爬取和已爬取self.new_urls=set()self.old_urls=set()defadd_new_url(self,url):#添加单个urlifurlisNoneorlen(url)==0:return......
  • python连接Mysql 1-01
    一,下载对应python环境的MySQL连接包我的是python3所以下载的是这个(cmd)pip3installPyMySQL二,创建py文件编写importpymysql#打开数据库连接db=pymysql.connect(host='localhost',user='root',password='123456',db='test1')#使用cursor()方法创建一个游......
  • python:python解析器和pycharm编译器安装
    python解析器下载地址:https://www.python.org/getit/注意事项:1.建议下载3.6以以上的版本,2.官网下载比较慢,可以自行寻找其它网站下载,3.建议使用.exe安装包方式下载安装 下载完成后双击运行     验证是否安装成功:  pycharm编译器下载......
  • Python 全栈工程师必备面试题 300 道(2020 版)
    2020元旦巨献,面试升级必备!献给正在学习Python的同学!Python全栈工程师必备面试题300道(2020版)Python面试不仅需要掌握Python基础知识和高级语法,还会涉及网络编程、web前端后端、数据库、网络爬虫、数据解析、数据分析和数据可视化等各方面的核心知识。针对网上资料参差不齐,并......
  • python操作mongodb实现读写分离
    读写分离默认情况下,MongoClient实例将查询发送到副本集的主要成员。要使用副节点作为查询,以实现读写分离,我们必须更改读取首选项:读取首选项在模块pymongo.ReadPreference下:PRIMARY:从主节点中读取(默认)PRIMARY_PREFERRED:优先从主节点读取,如果不可用则从副节点读取、SECOND......