Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析


Posted in Python onSeptember 20, 2019

本文实例讲述了Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)。分享给大家供大家参考,具体如下:

demo.py(类方法,@classmethod):

class Tool(object):
  # 使用赋值语句定义类属性,记录所有实例化工具对象的数量
  count = 0
  # @classmethod 定义类方法. 第一个参数是cls (cls用于访问类属性和类方法,不能访问实例属性/方法)
  @classmethod
  def show_tool_count(cls):
    # 不能访问实例属性
    print("工具对象的数量 %d" % cls.count) # cls.类属性名 访问类属性(类方法中)
  def __init__(self, name):
    self.name = name # 实例属性
    # 类名.类属性名 访问类属性(实例方法中)
    Tool.count += 1
# 实例化工具对象
tool1 = Tool("斧头")  # tool1.__class__属性指向类对象。 tool1.__class__.count实例对象访问类属性
tool2 = Tool("榔头")
# 类名.类方法 调用类方法
Tool.show_tool_count()

运行结果:

工具对象的数量 2

demo.py(静态方法,@staticmethod):

class Dog(object):
  # @staticmethod 定义静态方法;静态方法内部不能访问类属性/方法和实例属性/方法。不需要传默认参数。
  # Python中的静态方法与在类外部定义的普通函数作用相同,只是表明该函数仅供该类使用。
  @staticmethod
  def run():
    # 不能访问实例属性/类属性
    print("小狗要跑...")
# 类名.静态方法名 调用静态方法,不需要创建对象 (也可以通过实例对象调用)
Dog.run()

运行结果:

小狗要跑...

Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析


Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析


Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
python中MySQLdb模块用法实例
Nov 10 Python
使用Python3制作TCP端口扫描器
Apr 17 Python
Python subprocess模块常见用法分析
Jun 12 Python
python绘制圆柱体的方法
Jul 02 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
python定位xpath 节点位置的方法
Aug 27 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
pandas的resample重采样的使用
Apr 24 Python
Python如何实现定时器功能
May 28 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 #Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 #Python
使用Python给头像戴上圣诞帽的图像操作过程解析
Sep 20 #Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
Sep 20 #Python
Python 50行爬虫抓取并处理图灵书目过程详解
Sep 20 #Python
使用python获取邮箱邮件的设置方法
Sep 20 #Python
Python中的上下文管理器相关知识详解
Sep 19 #Python
You might like
PHP自动重命名文件实现方法
2014/11/04 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
WebPack基础知识详解
2017/01/16 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
vue组件发布到npm简单步骤
2017/11/30 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
Python跳出多重循环的方法示例
2019/07/03 Python
python中Lambda表达式详解
2019/11/20 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
tensorboard显示空白的解决
2020/02/15 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
keras 读取多标签图像数据方式
2020/06/12 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
工地资料员岗位职责
2013/12/31 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
2015年派出所工作总结
2015/04/24 职场文书
创业计划之特色精品店
2019/08/12 职场文书
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python