Python中类定义方法有什么区别?这两点需要注意

在python的类之中可以使用装饰器的形式去定义不同类型的方法,而使用装饰器定义之后的方法调用和定义也会有所不同 。类之中定义方法的装饰器有@staticmethod和@classmethod这两个,下文会对此来详细的进行解析 。

Python中类定义方法有什么区别?这两点需要注意

文章插图
一、@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的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家 。

    推荐阅读