python之'实例方法、静态方法和类方法的区别和使用'

1.区别:

  实例方法 类方法 静态方法
第一个默认参数

self :表示当前类的一个实例

cls :表示当前类本身 没有第一个默认参数
修饰器 没有修饰器 @classmethod @staticmethod
方法调用 实例对象 类名/实例对象 类名/实例对象
使用 方法内需要使用实例属性 方法内需要使用类属性/类方法 方法内无实例属性/类属性/类方法的操作
class A(object):
    class_name='类名'
    def __init__(self,name):
        self.isinstant_name=name

    def method(self):
        print('self=',self)
        print("实例属性=",self.isinstant_name)

    @classmethod
    def class_method(cls):
        print('cls=',cls)
        print("类属性=",cls.class_name)

    @staticmethod
    def static_method():
        print("静态方法")


print('#通过实例调用三种方法#')
a = A('isinstant_name')
a.method()
a.class_method()
a.static_method()

print('#通过类名调用静态方法和类方法#')
A.class_method()
A.static_method()

output: 

#通过实例调用三种方法#
self= <__main__.A object at 0x0000025226DFDC88>
实例属性= isinstant_name
cls= 
类属性= 类名
静态方法
#通过类名调用静态方法和类方法#
cls= 
类属性= 类名
静态方法

参考:

https://blog.csdn.net/helloxiaozhe/article/details/79940321

你可能感兴趣的:(Python)