类变量
(1) 定义:在类中,方法外。
class 类名:
变量名 = 数据
(2) 调用:
类名.变量名
# 不建议通过对象访问类变量
(3) 特点:
– 随类的加载而创建
– 存在优先于对象
– 只有一份,被所有对象共享。
(4) 作用:描述所有对象的共有数据。
类方法
(1) 定义:
@classmethod
def 方法名称(cls,参数):
方法体
(2) 调用:
类名.方法名(参数)
# 不建议通过对象访问类方法
(2) 说明
– 至少有一个形参,第一个形参用于绑定类,一般命名为’cls’
– 使用@classmethod修饰的目的是调用类方法时可以隐式传递类。
– 类方法中不能访问实例成员,实例方法中可以访问类成员。
(3) 作用:操作类变量。
class ICBC:
"""
工商银行
"""
# 类变量:总行的钱
total_money = 1000000
# 类方法:操作类变量
@classmethod
def print_total_money(cls):
# print("总行的钱:", ICBC.total_money)
#这里的cls其实就相当于类名字,@classmethod这个方法直接就把类名字传到cls里了
#然后这个cls操作类变量,就这么简单
print("总行的钱:", cls.total_money)
def __init__(self, name,money=0):
self.name = name
# 实例变量:支行的钱
self.money = money
# 总行的钱因为创建一家支行而减少
ICBC.total_money -= money
ttzh = ICBC("天坛支行",100000)
xdzh = ICBC("西单支行",200000)
# print("总行的钱:", ICBC.total_money)
ICBC.print_total_money()
一句话,类方法就是在类里面自定义一个函数方法,把*@classmethod*这玩意往头上一放,类的名字就进这个函数方法里了