欢迎关注博主 python老鸟 或 前往 『Python自学网』, 从基础入门免费课程开始,逐步深入学习python全栈体系课程,适合新手入门到精通全栈开发。
免费专栏传送门:《Python基础教程》
一、类方法
1)类属性:
含义:类属性就是针对类对象定义的属性。
定义类属性:使用赋值语句在class关键字下方可以定义类属性
作用:类属性用于记录这个类相关的特征
2)类方法:
含义:类方法就是针对类对象定义的方法。
使用:在类方法内部可以直接访问类属性 或者调用其他的类方法
语法:
@classmethod
def 类方法名(cls):
pass
提示:
2.1类方法需要用修饰器@classmethod来标识,告诉python解释器这是一个类方法
2.2类方法的第一个参数应该是cls
- 由哪一个类调用的方法,方法内的cls就是哪一个类的引用
- 这个参数和实例方法的第一个参数是self类似
- 提示:使用其他名称也可以,不过都习惯使用cls
2.3通过类名. 调用类方法,调用方法时,不需要传递cls参数
2.4在方法内部:
- 可以通过 cls. 访问类的属性
- 也可以通过 cls. 调用其他的类方法
3)代码示例
需求:
- 定义一个工具类
- 每件工具都有自己记得名字name
- 需求====》在类中封装一个show_tool_count的类的方法,输出使用当前这个类创建的对象个数。
代码:
class Tool(object):
# 使用赋值语句定义类属性,记录所有工具对象的数量
# 初始数量是0
count = 0
@classmethod
def show_tool_count(cls):
# 显示工具对象的总数
print("工具对象总数 %d" % cls.count)
def __init__(self, name):
self.name = name
# 每增加一个工具对象,让类属性的值加1
Tool.count += 1
# 创建工具对象
tool1 = Tool("扳手")
# 调用类方法
Tool.show_tool_count()
执行结果:
二、静态方法
2.1封装静态方法情况:
在开发时,如果需要在类中封装一个方法,这个方法既不需要访问实例属性或者调用实例方法,也不需要访问类属性或者调用类方法,这个时候,可以把这个方法封装成一个静态方法。
2.2 定义语法
@classmethoddef 静态方法名(): pass
提示:
- 静态方法需要用修饰器@staticmethod来标识,告诉解释器这是一个静态方法
- 静态方法在定义时不需要指定第一个参数
调用静态方法方式:不需要创建对象
类名.
代码:
class Dog(object):
@staticmethod
def run():
print("狗狗想跑一跑")
# 通过类名.调用及静态方法->不需要创建对象
Dog.run()
执行结果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73315.html