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与Redis的连接教程
Apr 22 Python
详解Python命令行解析工具Argparse
Apr 20 Python
Python set常用操作函数集锦
Nov 15 Python
解决Tensorflow安装成功,但在导入时报错的问题
Jun 13 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
python获取txt文件词向量过程详解
Jul 05 Python
python画图把时间作为横坐标的方法
Jul 07 Python
python socket 聊天室实例代码详解
Nov 14 Python
python实现随机加减法生成器
Feb 24 Python
python 如何对logging日志封装
Dec 02 Python
Python3.10的一些新特性原理分析
Sep 15 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实现基于pdo的事务处理方法示例
2017/07/21 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
Mac 上切换Python多版本
2017/06/17 Python
Python中super函数的用法
2017/11/17 Python
Python实现感知机(PLA)算法
2017/12/20 Python
Python 私有化操作实例分析
2019/11/21 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
Python爬虫开发与项目实战
2020/12/16 Python
PyQt实现计数器的方法示例
2021/01/18 Python
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
汽车专业毕业生推荐信
2013/11/12 职场文书
营业员实习自我鉴定
2013/12/07 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫