前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python面向对象】类方法和静态方法

【Python面向对象】类方法和静态方法

原创
作者头像
python自学网
发布2022-09-29 13:33:12
49200
代码可运行
发布2022-09-29 13:33:12
举报
运行总次数:0
代码可运行

一、类方法

1)类属性:

含义:类属性就是针对类对象定义的属性。

定义类属性:使用赋值语句在class关键字下方可以定义类属性

作用:类属性用于记录这个类相关的特征

2)类方法:

含义:类方法就是针对类对象定义的方法。

使用:在类方法内部可以直接访问类属性 或者调用其他的类方法

语法:

代码语言:python
代码运行次数:0
复制
@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的类的方法,输出使用当前这个类创建的对象个数。

代码:

代码语言:python
代码运行次数:0
复制
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 定义语法

代码语言:python
代码运行次数:0
复制
@classmethod
def 静态方法名():
    pass

  • 静态方法需要用修饰器@staticmethod来标识,告诉解释器这是一个静态方法
  • 静态方法在定义时不需要指定第一个参数

调用静态方法方式:不需要创建对象

类名.

代码:

代码语言:python
代码运行次数:0
复制
class Dog(object):
    @staticmethod
    def run():
        print("狗狗想跑一跑")


# 通过类名.调用及静态方法->不需要创建对象
Dog.run()

执行结果:

更多相关Python教程可以移步去Python自学网(http://www.wakey.com.cn/)从基础入门免费课程开始,逐步深入学习python全栈体系课程,适合新手入门到精通全栈开发。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、类方法
    • 1)类属性:
      • 2)类方法:
        • 3)代码示例
        • 二、静态方法
          • 2.1封装静态方法情况:
            • 2.2 定义语法
            相关产品与服务
            日志服务
            日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档