python中的类示例方法,类方法,静态方法的使用与区别

class Test(object):

    age = 20

    def __init__(self, name):

        self.name = name

    def func(self):

        print  self.age, self.name, Test.age

    @classmethod

    def class_func(cls):

        print Test.age, cls.age

    @staticmethod

    def static_func(arg):

        print arg, Test.age


t = Test()

t.func()

t.class_func()

t.static_func()

Test.class_func()

Test.static_func()


方法定义:

1:实例方法就是类的实例能够使用的方法。

2:静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作。使用装饰器@staticmethod定义静态方法。类对象和实例都可以调用静态方法。

3:类方法是将类本身作为对象进行操作的方法。类方法使用@classmethod装饰器定义,其第一个参数是类,约定写为cls。类对象和实例都可以调用类方法。


使用:

1:类的实例可以访问实例方法,类方法和静态方法

2:类可以访问类方法和静态方法,但是不能访问实例方法。

3:类和实例都能访问类的成员属性。实例可以访问实例属性,但是类不能访问实例属性。


参数传递区别:

1:实例方法悄悄传递的是self引用作为参数,

2:类方法悄悄传递的是cls引用作为参数。

3:静态方法无隐含参数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容