Python面向对象之类方法和静态方法

1.类方法

  • 类属性 就是针对 类对象 定义的属性
    1、使用 赋值语句 在 class 关键字下方可以定义 类属性
    2、类属性 用于记录 与这个类相关 的特征
  • 类方法 就是针对 类对象 定义的方法
    在 类方法 内部可以直接访问 类属性 或者调用其他的 类方法

语法如下

@classmethod
def 类方法名(cls):
    pass
  • 类方法需要用 修饰器 @classmethod 来标识,告诉解释器这是一个类方法
  • 类方法的 第一个参数 应该是 cls
    1、由 哪一个类 调用的方法,方法内的 cls 就是 哪一个类的引用
    2、这个参数和 实例方法 的第一个参数是 self 类似
    3、提示 使用其他名称也可以,不过习惯使用 cls
  • 通过 类名. 调用 类方法,调用方法时,不需要传递 cls 参数
  • 在方法内部
    可以通过 cls. 访问类的属性
    也可以通过 cls. 调用其他的类方法

2.静态方法

  • 在开发时,如果需要在 类 中封装一个方法,这个方法:
    1、既 不需要 访问 实例属性 或者调用 实例方法
    2、也 不需要 访问 类属性 或者调用 类方法

  • 这个时候,可以把这个方法封装成一个 静态方法

语法如下

@staticmethod
def 静态方法名():
    pass
  • 静态方法 需要用 修饰器 @staticmethod 来标识,告诉解释器这是一个静态方法
  • 通过 类名. 调用 静态方法

3.总结

1.实例方法 —— 方法内部需要访问 实例属性

  • 实例方法 内部可以使用 类名. 访问类属性

2.类方法 —— 方法内部 只 需要访问 类属性

3.静态方法 —— 方法内部,不需要访问 实例属性 和 类属性

如果方法内部 即需要访问 实例属性,又需要访问 类属性,应该定义成什么方法?

  • 应该定义 实例方法,因为,类只有一个,在 实例方法 内部可以使用 类名. 访问类属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值