前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中的静态方法、实例方法、类方法的区别

Python中的静态方法、实例方法、类方法的区别

作者头像
benym
发布2022-07-14 13:53:10
1.5K0
发布2022-07-14 13:53:10
举报
文章被收录于专栏:后端知识体系后端知识体系

实例方法

定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);

调用:只能由实例对象调用。

类方法

定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);

调用:实例对象和类对象都可以调用。

静态方法

定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;

调用:实例对象和类对象都可以调用。

# 代码

代码语言:javascript
复制
import time


class Tool(object):
    count = 0

    def __init__(self, name):
        self.name = name
        Tool.count += 1

    # 定义一个实例方法,有self参数
    def action(self):
        print("挥动{}".format(self.name))

    # 定义一个类方法,有cls参数
    @classmethod
    def shou_tool_count(cls):
        print("工具对象的数量{}".format(cls.count))

    # 定义一个静态方法,初始没有任何参数
    @staticmethod
    def showTime():
        print(time.strftime("%H:%M:%S", time.localtime()))


# 创建工具对象
tool = Tool("斧头")
too2 = Tool("榔头")
# 调用类方法,逻辑上类方法一般由类自身调用,其实实例对象和类对象都可以调用
Tool.shou_tool_count()

# 调用实例方法,只能由实例对象调用
tool.action()

# 调用静态方法,实例对象和类对象均可调用
too2.showTime()
Tool.showTime()

# 运行结果

代码语言:javascript
复制
工具对象的数量2
挥动斧头
20:30:46
20:30:46
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 代码
  • # 运行结果
相关产品与服务
日志服务
日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档