classA(object):'''
类属性:定义并初始化在类中,可以通过类和实例去访问,但是只能通过类修改
实例可以使用同名的实例属性进行覆盖
'''
country ="China"def__init__(self):# 实例属性:只能通过实例访问和修改,只属于某个特定的实例,类无法访问和修改
self.name ="cris"# 实例方法:类中定义并且以 self 处于第一个参数位置,该方法被调用时,自动将调用该参数的实例传入作为第一个参数# 也可以通过类去调用deftest(self):print("test!")# 类方法:使用 @classmethod 注解的方法,类方法的第一个参数默认定义为 cls,就是当前的 class 对象# 可以通过类或者实例去调用
@classmethoddeffunction(cls):print("this is class method", cls)# 静态方法:不需要指定默认参数,也不会自动传递,可以通过类和实例调用# 只是保存到当前类的一个函数,和当前类关系不大,一般作为工具方法
@staticmethoddefhaha():print('static method')print(A.country)# China
a = A()print(a.country)# China
a.country ='Japan'print(A.country)# Chinaprint(a.country)# Japan
a.test()# test!# A.test() # 报错
A.test(a)# test!
A.function()# this is class method <class '__main__.A'>
a.haha()# static method