在python中一切皆对象,那么接下来我们就进一步把面向中的实例属性,类属性,实例方法,类方法,静态方法区分一下,
首先用代码表示一下他们所在的位置:
class A(): #类
sun=5 #类属性
def __init__(self): #init方法
self.age=10 #实例属性
def test1(self): #实例方法
print("我是实例方法")
@classmethod #类方法
def test2(cls):
print("我是类方法")
@staticmethod #静态方法
def test3():
print("我是静态方法")
a=A() #实例化对象
print(a.age)
print(a.sun)
a.test1()
a.test2()
a.test3()
结果:
从上面的代码中我们可以看到,在Python中一切皆对象,类是一个特殊的对象即类对象,描述类的属性称为类属性,它属于类。类属性在内存中只有一份,所有实例对象公用,在__init__外部定义。
实例属性:用来描述类创建出来的实例对象,需要通过对象来访问,在各自对象的内存中都保存一份,在__init__方法内部定义
实例方法:由对象调用,至少一个self参数,self代表对象的引用,也就是我们在类中定义的普通方法,在实例化对象之后方可使用。
类方法:由类调用,至少一个cls参数,并且需要装饰器@classmethod修饰
静态方法:由类调用,不需要参数,需要装饰器@staticmethod修饰,