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 相关文章推荐
web.py中调用文件夹内模板的方法
Aug 26 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
通过源码分析Python中的切片赋值
May 08 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 Python
部署Django到阿里云服务器教程示例
Jun 03 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
Jun 11 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 数组基础知识小结
2010/08/20 PHP
php学习之流程控制实现代码
2011/06/09 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
JavaScript 基本概念
2015/01/20 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
js拖拽功能实现代码解析
2016/11/28 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
从零学Python之入门(二)基本数据类型
2014/05/25 Python
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
书法培训心得体会
2014/01/05 职场文书
给女儿的表扬信
2014/01/18 职场文书
工程造价专业求职信
2014/07/17 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
建国大业观后感800字
2015/06/01 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
pytorch 如何使用float64训练
2021/05/24 Python