上代码:
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()
所以,类的实例对象可以调用类中除私有方法外的所有方法和属性;类不能直接调用实例方法。总结如下:
(直接盗个图懒得自己写了)