在python的类之中可以使用装饰器的形式去定义不同类型的方法,而使用装饰器定义之后的方法调用和定义也会有所不同 。类之中定义方法的装饰器有@staticmethod和@classmethod这两个,下文会对此来详细的进行解析 。
文章插图
一、@staticmethod
使用装饰器@staticmethod定义的方法被称之为静态方法,静态方法和普通方法之间的差异主要表现在定义和调用方法 。静态方法在定义的时候不需要在参数列表里面加self来表示这个参数是指向自身的,而且它在调用的时候可以同时使用类名和类实例化之后的对象去调用,代码示例如下:
# 定义静态方法并调用class Test(object): def __init__(self, arg=None): super(Test, self).__init__() self.arg = arg @staticmethod def say_bad(): print 'say bad'# 实例化类test = Test()# 调用静态方法Test.say_bad()test.say_bad()二、@staticmethod
使用装饰器@staticmethod定义的方法是类方法,类方法在调用的时候也可以使用类名和实例化之后的类对象名去调用 。但是它在定义方法的时候是有着一定的区别的,类方法虽然也不需要使用self这个参数表示其是一个类自身的对象,但是它必须要要有一个参数cls来表示指向这个类,示例如下:
@classmethod def say_good(cls): print 'say good'Test.say_good()【Python中类定义方法有什么区别?这两点需要注意】以上就是关于“Python中类定义方法有什么区别?这两点需要注意”的全部内容了,想要了解更多python的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家 。
推荐阅读
- Python安装哪一个版本比较好?这几点需要去考虑
- Python列表维度怎么改变?Python如何改变列表维度
- python常用运算符有哪些?这篇文章给你详细答案
- Python编辑器pycharm怎么用pip?这个设置方法要知道
- Python2版本有主函数吗?Python2主函数怎么写
- Python编辑器vscode如何自定义背景?vscode自定义背景教程
- Python转义字符不生效是为什么?Python转义字符没用怎么办
- Python如何随机输出列表元素?Python随机输出怎么实现
- Python中的self是什么?Python里self有什么用
- pr如何还原工作区设置?Premiere自定义工作区面板的方法