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

python中的类示例方法,类方法,静态方法的使用与区别_第1张图片

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:静态方法无隐含参数。

你可能感兴趣的:(python中的类示例方法,类方法,静态方法的使用与区别)