Python中的类方法@classmethod

本文介绍了Python中的类变量和类方法。类变量在类定义内,属于所有对象共享,随着类的加载创建。类方法通过@classmethod装饰器定义,至少有一个形参cls,用于操作类变量,不建议通过对象访问。示例代码展示了如何定义和使用类变量及类方法,包括创建银行支行并调整总行资金的例子。
摘要由CSDN通过智能技术生成
类变量

(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*这玩意往头上一放,类的名字就进这个函数方法里了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rebirth-LSS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值