DAY 3. 静态方法,类方法,属性方法,实例方法

有四种方法,实例方法,类方法,静态方法,属性方法

  • 实例方法

实例方法的第一个参数是self,他会指向类的实例化对象,只能被对象调用,如

class Demo:def instanceMethod(self):print("this is a instance method")if __name__ == "__main__":demo = Demo()demo.instanceMethod()

用点调用时不需要传入对象参数,python会把调用实例方法的对象作为实例方法的第一个参数传入,等价于

if __name__ == '__main__':demo = Demo()Demo.instanceMethod(demo)
  • 类方法

使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,可以使用类(例如C.f())或实例(例如C()。f())调用类方法。 除了类之外,该实例被忽略。 如果为派生类调用类方法,则派生类对象将作为隐含的第一个参数传递。

class Demo:@classmethoddef classMethod(self):print("this is a class method")if __name__ == "__main__":demo = Demo()Demo.classMethod()demo.classMethod()

同样是语法糖,用点调用时会自动把调用类方法的类或对象作为第一个参数传入

  • 静态方法

用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,静态方法不会接收隐式的第一个参数,类似于c++中的静态方法,只是占用了类的命名空间,与类没有联系,了一使用类名或对象名调用

  • 属性方法

用来将一个方法变成静态属性,使用修饰器@property

class C:def __init__(self):self._x = None@propertydef x(self):"""I'm the 'x' property."""return self._x@x.setterdef x(self, value):self._x = value@x.deleterdef x(self):del self._x

TODO : 有点难改天专门学

总结

方法 修饰器 调用 使用场景(个人理解)
实例方法 / 只能被对象调用 大多数场景
类方法 @classmethod 能被对象或类调用 只操作类属性
静态方法 @staticmethod 能被对象或类调用 不操作类中的属性和方法
属性方法 @property 按静态属性的方法调用(不加括号) TODO

参考文章
GitHub 关于python的面试题

Python静态方法、类方法、属性方法

Python面向对象静态方法,类方法,属性方法

Python 实例方法、类方法、静态方法的区别与作用

python 文档 staticmethod

python 文档 classmethod

python静态方法,类方法,属性方法,实例方法相关推荐

  1. 类的实例方法静态方法类方法属性方法属性

    目录: 分类 实例方法 静态方法 类方法 属性方法 属性 分类: 按照调用方式可以分为3种,实例方法.静态方法.和类方法 实例方法 实例方法只能通过实例对象调用,不能通过类进行调用.实例方法再定义时候 ...

  2. Python类方法、实例方法、静态方法和属性方法详解

    静态方法(可调类变量.可被实例调用.可被类调用) 1.用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用 2.静态方法名义上归 ...

  3. 向js中添加静态方法与属性方法

    前言 略 静态方法 if (!Date.diffDays) {Date.diffDays = function(s1, s2) {return Date.valueOf2(s1).diffDaysOf ...

  4. python 静态方法 类方法 的作用_Python实例方法、类方法、静态方法的区别与作用详解...

    本文实例讲述了Python实例方法.类方法.静态方法的区别与作用.分享给大家供大家参考,具体如下: Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调 ...

  5. python静态方法怎么调用_python实例方法、静态方法和类方法

    Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...

  6. Python 静态方法 类方法

    静态方法和实例方法的区别主要体现在两个方面: 1. 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面 ...

  7. Python静态方法 类方法

    通常情况下,类中函数中定义的所有函数,,都是对象的绑定方法,除此之外,还有专门的静态方法和类方法,这两个是专门给类使用的,但是对象非要调用也是不会报错的. 对象在调用的时候会把自己传递给self,也就 ...

  8. 类属性,实例属性,私有属性,类方法,实例方法,静态方法,私有方法,魔法方法

    实例对象可以调用实例方法/属性.静态方法.类方法/属性,类对象只能调用静态方法和类方法/属性 dir()函数不带参数时,返回当前范围内的变量.方法和定义的类型列表 dir()函数带参数时会返回该参数的 ...

  9. 1023day5:class类属性方法、每次执行类属性+1、内建模块、时间装饰器wrapper、面向对象__slots__方法:限制类的属性等基础知识、正则表达式基础知识、多态鸭子类型

    文章目录 一.类class 1.Python类class 属性 方法 2.类的构造方法__init__() 3.每次执行一次类的属性+1 二.模块 1.内建模块 2.第三方模块 3.定义自己的模块 三 ...

最新文章

  1. java多线程之锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
  2. mysql数据库---授权语句以及备份
  3. 蓝牙4.0BLE抓包(一) - 搭建EN-Dongle工作环境 使用EN-Dongle抓包 nRF51822
  4. 怎样新建Oracle数据库
  5. 关于内存流与字符串的转换
  6. dvd管理器java_Java DVD管理器 基础示例代码下载
  7. 音视频技术开发周刊 68期
  8. 1分钟了解“区块链分叉”的本质
  9. exchanger_如何通过示例在Java中使用Exchanger
  10. 自定义ant中table表格的展开图标 修改ant-vue-design中嵌套表格table的expandIcon自定义图标
  11. 图片服务 - thumbor启用AutoJPG
  12. 性能比拼!超详细的Tengine GEMM矩阵乘法汇编教程
  13. “反催收”渐成黑灰产业 专家呼吁协同治理“债闹”黑灰产
  14. JNDI技术、JDBC框架、几种元数据介绍
  15. springboot配置错误页面
  16. 谈谈我对《ThoughtWorks文集》中多语言开发部分的看法
  17. 75道经典逻辑思维题及答案
  18. ESP32 入门笔记06: WIFI时钟 + FreeRTOS+《两只老虎》 (ESP32 for Arduino IDE)
  19. 关于打游戏ping值不稳定问题的解决经历(疑难篇)
  20. Stripe 银行卡支付功能初步指南(Java)

热门文章

  1. CentOS 6 和 CentOS 7 防火墙的关闭
  2. vue打包成app后,背景图片不显示
  3. lambda表达式与委托与线程初步谈论-基于刘铁锰视频观后操作
  4. 实体类中存在List集合,怎么在xml文件中,对应
  5. 从远程(包括ftp,http等协议)地址获取文件流信息
  6. 00030_ArrayList集合
  7. NodeJS中的require和import
  8. IOS应用开发版本控制工具之Versions使用,iosversions
  9. 好久没敲代码了(强行补上今天的博客。。。)
  10. flask上传excel文件,无须存储,直接读取内容