当前位置:主页 > python教程 > 装饰器@staticmethod和@classmethod有什么区别

装饰器@staticmethod和@classmethod的区别点总结

发布:2019-10-25 11:33:54 174


给大家整理一篇python装饰器相关的编程文章,网友益运馨根据主题投稿了本篇教程内容,涉及到装饰器、@staticmethod、@classmethod、装饰器@staticmethod和@classmethod有什么区别相关内容,已被322网友关注,相关难点技巧可以阅读下方的电子资料。

装饰器@staticmethod和@classmethod有什么区别

通常来说,我们使用一个类的方法时,首先要实例化这个类,再用实例化的类来调用其方法

 

class Test(object):
    """docstring for Test"""
    def __init__(self, arg=None):
        super(Test, self).__init__()
        self.arg = arg
    def say_hi(self):
        print 'hello wrold'
def main():
    test = Test() //1. 首先实例化test类
    test.say_hi() //2. 再调用类的方法
if __name__ == '__main__':
    main()

装饰器@staticmethod和@classmethod有什么区别

而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。

这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。

class Test(object):
    """docstring for Test"""
    def __init__(self, arg=None):
        super(Test, self).__init__()
        self.arg = arg
    def say_hi(self):
        print 'hello wrold'
    @staticmethod
    def say_bad():
        print 'say bad'
    @classmethod
    def say_good(cls):
        print 'say good'
def main():
    test = Test()
    test.say_hi()
    Test.say_bad() //直接类名.方法名()来调用
    Test.say_good() //直接类名.方法名()来调用
if __name__ == '__main__':
    main()

@staticmethod或@classmethod的区别

类的普通方法,地一个参数需要self参数表示自身。

@staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样。

@classmethod也不需要self参数,但第一个参数需要是表示自身类的cls参数。

以上就是装饰器@staticmethod和@classmethod有什么区别的详细内容,更多请关注码农之家其它相关文章!


参考资料

相关文章

  • 一文教你实现Python重试装饰器

    发布:2023-04-12

    在写业务代码时候,有许多场景需要重试某块业务逻辑,例如网络请求、购物下单等,希望发生异常的时候多重试几次。本文分享如何利用Python 的装饰器来进行面向切面(AOP)的方式实现自动重试器,希望对大家有所帮助


  • Python装饰器模拟用户登陆验证的实现方法

    发布:2020-01-20

    这篇文章主要介绍了Python使用装饰器模拟用户登陆验证功能,结合登录验证实例形式分析了装饰器的简单使用技巧,需要的朋友可以参考下


  • python3 property装饰器实现原理与用法示例

    发布:2023-02-28

    给网友朋友们带来一篇关于python3的教程,这篇文章主要介绍了python3 property装饰器实现原理与用法,结合实例形式分析了Python3 property装饰器功能、原理及实现方法,需要的朋友可以参考下


  • Python的装饰器详情介绍

    发布:2022-04-08

    这篇文章主要介绍了Python的装饰器详情,主要介绍装饰器定以、调用方式等相关内容,需要的小伙伴可以参考一下,希望对你的学习有所帮助


  • es7学习教程之Decorators(修饰器)详解

    发布:2023-01-05

    给大家整理了关于javascript的教程,这篇文章主要给大家介绍了关于es7中Decorators(修饰器)的相关资料,文中通过示例代码给大家介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编一


  • python装饰器实现对异常代码出现进行自动监控的实现方法

    发布:2021-04-15

    这篇文章主要介绍了python装饰器实现对异常代码出现进行自动监控的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


  • Python 3.7中dataclass装饰器用法详解

    发布:2018-10-25

    这篇文章主要给大家介绍了关于Python 3.7新功能之dataclass装饰器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧。


  • Python合并多个装饰器的方法

    发布:2020-01-17

    这篇文章主要介绍了Python合并多个装饰器小技巧,本文用改写调用函数的方式实现把多个装饰器合并成一行、一个函数来调用,需要的朋友可以参考下


网友讨论