python中类方法、类实例方法、静态方法的使用与区别

上代码:

class A(object):
    name='python'#类属性
    def __init__(self):
        self.age=18 #实例属性
    def a_print(self):#实例方法
        print('aaa')

    @classmethod    #类方法
    def b_print(cls):   #cls--指代当前的类
        print(cls.name)

    @staticmethod   #静态方法
    def c_print():
        print('static method')

print(A.name)   #类调用属性
#A.a_print()
A.b_print()     #类调用类方法
A.c_print()     #类调用静态方法

a=A()   #生成类实例
a.a_print()     #实例对象调用实例方法
a.b_print()     #调用类方法
a.c_print()     #调用静态方法

输出结果:

python
python
static method
aaa
python
static method

注意:

如果使用类调用实例方法是会报错的:

A.a_print()

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

所以,类的实例对象可以调用类中除私有方法外的所有方法和属性;类不能直接调用实例方法。总结如下:

python中类方法、类实例方法、静态方法的使用与区别_第2张图片

(直接盗个图懒得自己写了)

 

 

你可能感兴趣的:(Python)