1.类变量,可以使用类名直接访问
2.实例变量,需要创建实例后,使用实例对象访问
3.类方法,可以访问类变量,可通过类名或者实例名访问
4.静态方法,不能访问类变量和实例变量,可通过类名或者实例名访问
class Cat:
variable = {"波斯猫": 20, "英短": 30} # 类变量
def __init__(self, color, weight): # 实例变量
self.color = color
self.weight = weight
@classmethod
def cal_variable(cls):
num = 0
for values in cls.variable.values():
num = values + num
return num
@staticmethod
def get_cat_weight():
return "This is a staticmethod"
if __name__ == "__main__":
print("类变量:", Cat.variable)
cat1 = Cat('YELLOW', 18)
print("实例属性:", cat1.color)
print("类方法,通过类访问:", Cat.cal_variable())
print("类方法,通过实例访问:", cat1.cal_variable())
print("静态方法,通过类访问:", Cat.get_cat_weight())
print("静态方法,通过实例访问:", cat1.get_cat_weight())