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

这三种方法都是保存在类的内存中,调用者不同。

  • 实例方法由对象调用,至少一个self参数,self代表对象的引用。
    self指向当前的实例对象,所以只要该方法有self参数,在调用此方法的时候会先把这个对象的内存空间加载进来,以便在方法中使用该实例对象的属性或者方法
  • 类方法由类调用,至少一个cls参数,并且需要装饰器@classmethod修饰
    cls指向当前的类对象,类对象不等于实例对象,类对象和实例对象都有单独的内存空间存储,当调用一个含有@classmethod装饰的方法,则会先加载这个类的内存空间
  • 静态方法由类调用,不需要参数,需要装饰器@staticmethod修饰
    静态方法不不要使用实例对象的属性方法也不需要使用类对象的属性所有无论往静态方法中传一个self还是cls都会加载对应的资源,而静态方法又不使用,所有为了节省资源静态方法就应运而生.并且一直保存再来没有删除,尽管用到的次数很少.

python中静态方法存在的意义相关推荐

  1. Python中静态方法的实现

    Python中静态方法的实现 Python似乎很讨厌修饰符,没有常见的static语法.其静态方法的实现大致有以下两种方法: 第一种方式(staticmethod): >>> cla ...

  2. python各种常用符号的意思_写一篇专门介绍python中各种符号的意义及用法

    挖槽,小米今天上市就破发了,好多认购的小伙伴有点慌了,其实对于小帅b来说这很正常,没必要慌,保持持有就好了,相信小米会越来越牛逼的.小米和可能会成为互联网新一代的霸主主一,到时候可能就不是BAT了,而 ...

  3. python中使用函数编程的意义_总结Python编程中函数的使用要点

    为何使用函数 最大化代码的重用和最小化代码冗余 流程的分解 编写函数 >>def语句 在Python中创建一个函数是通过def关键字进行的,def语句将创建一个函数对象并将其赋值给一个变量 ...

  4. Python 中的面向对象没有意义

    编译 | 弯月   责编 | 张文 出品 | CSDN(ID:CSDNnews) 许多人都在抨击面向对象,虽然我不认为他有什么问题,但我觉得至少在 Python 中没必要. 近来,许多人都在抨击面向对 ...

  5. python中面向对象的缺点_面向对象中的多态在 Python 中是否没有什么意义?

    谢邀! 话说,你为什么说Python中没有数据类型的概念.Python肯定是有数据类型的,在我所见的所有语言中,没有一门编程语言是没有数据类型的. 依据你的问题,我理解或许你的意思是,Python没有 ...

  6. python中静态方法可以访问对象变量_python 面向对象-实例变量、类变量、实例方法、类方法、静态方法...

    需要搞清楚的是, 实例方法与类方法是什么?类变量和实例变量又是什么? 类方法中如何访问类变量.类方法要如何调用?当然 实例方法中如何访问类变量?能 实例方法访问实例变量,实例方法如何被调用?当然 类方 ...

  7. python中arange是什么意思_python中arange是什么意义【Python教程】,python,arange

    arange函数用于建立等差数组,运用频次异常高,arange异常相似range函数,会python的人一定经经常使用range函数,比如在for循环中,险些都用到了range,下面我们经由过程ran ...

  8. Python 中私有变量的定义和用法

    为什么设计私有变量 大多数 Python 代码都遵循这样一个约定:带有一个下划线的名称 (例如: _spam) 应该被当作是 API 的非公有部分 (无论它是函数.方法或是数据成员). 为了保证对于类 ...

  9. python staticmethod有什么意义_关于静态方法:python中的@staticmethod有什么意义?

    为了更好地理解静态方法在Python中的工作方式,我开发了这个简短的测试/示例代码. class TestClass: def __init__(self, size): self.size = si ...

最新文章

  1. 【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据
  2. C#之windows桌面软件第二课:向单片机发信息的串口工具
  3. 三篇论文之Google MapReduce中文版
  4. mantis config_inc.php g_source,CentOS7下Mantis安装与配置
  5. Windows窗体和常用控件的事件处理函数
  6. 阿里巴巴矢量图标网使用的小方法
  7. 开源WebGIS开发——栅格图层
  8. 牛客网 吉首大学2019年程序设计竞赛(重现赛)A: SARS病毒(矩阵快速幂 + 碰巧降幂)
  9. 中等职业学校计算机类教学用书,中等职业学校计算机技术专业教学用书:二维动画制作(Flash CS3)...
  10. Flutter 游戏引擎 flame
  11. [管理新思维]社会化管理和开放式创新|裂变式创业
  12. ADC采样使用钳位电路分压来采比电压高的电路
  13. VUE2.0全局方法注册
  14. SpringBoot之整合Redis分析和实现-基于Spring Boot2.0.2版本
  15. Javascript学习:删除字符串中的数字
  16. IMAX探索VR产业,欲再造电影业传奇!
  17. java登陆界面中关于JDBC的一个问题
  18. CF1492A - Three swimmers
  19. RK3568开发笔记-EDP显示屏接口调试记录
  20. 网页设计(四)——DIV+CSS布局3

热门文章

  1. mysql5.7参数简单介绍
  2. easyui-tabs
  3. 写给mybatis小白的入门指南
  4. spring 集成mybatis——多数据源切换(附带定时器的配置)
  5. java http的get,post请求
  6. 腾讯地图api将物理地址转化成坐标
  7. tomcat开启cgi
  8. Serverless 实战 —— 轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
  9. 使用PostgREST的RestAPI操作PostgreSQL数据库教程
  10. 使用NGINX Plus API动态配置upstream