实例属性是类对象的属性,类属性是类的属性,通过类名不能访问实例属性和实例方法
class Person:
a=18
def __init__(self):
self.a=28
print(Person.age) # 类属性
print(Person().age) # 实例属性
类方法和静态方法都属于类的方法
class Person:
a=28
def __init__(self): # 构造方法
self.a=18
def info(self): # 实例方法
print(self.a)
def __name(self): # 私有方法
print('Chen')
@classmethod # 类方法用装饰器@classmethod标识
def age(cls): # 类方法的第一个参数为cls
print(cls.a) # 类方法不可以访问实例属性,可以通过cls访问类属性
@staticmethod # 静态方法用装饰器@staticmethod标识
def sex(): # 静态方法没有self参数和cls参数
print("man") # 不可以访问实例属性和类属性
类属性用类方法修改,实例属性用实例方法修改,类名和对象名都可以访问类方法和静态方法,类名不能访问实例方法