python-不要用实例直接访问类属性

class Person:
  max_age = 100
  
  def __init__(name, sex):
    self.name = name
    self.sex = sex
    self.age = 0

  @classmethod
  def change_max_age(cls, max_age):
    cls.max_age = max_age

zhangsan = Person('zhangsan', 'man')
lisi = Person('lisi', 'woman')

print(zhangsan.max_age) # 1000,实例访问类属性,会在实例里面创建一个同名属性
Person.change_max_age(900)
print(Person.max_age)   # 900
print(zhangsan.max_age) # 1000

对象内部可以直接访问,对象外部应该提供方法去访问,实例对象访问类对象也最好提供一个类方法供实例对象访问,除非大写命名约定这个属性是不变的常量