python静态方法,类方法,属性方法,实例方法
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静态方法,类方法,属性方法,实例方法相关推荐
- 类的实例方法静态方法类方法属性方法属性
目录: 分类 实例方法 静态方法 类方法 属性方法 属性 分类: 按照调用方式可以分为3种,实例方法.静态方法.和类方法 实例方法 实例方法只能通过实例对象调用,不能通过类进行调用.实例方法再定义时候 ...
- Python类方法、实例方法、静态方法和属性方法详解
静态方法(可调类变量.可被实例调用.可被类调用) 1.用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用 2.静态方法名义上归 ...
- 向js中添加静态方法与属性方法
前言 略 静态方法 if (!Date.diffDays) {Date.diffDays = function(s1, s2) {return Date.valueOf2(s1).diffDaysOf ...
- python 静态方法 类方法 的作用_Python实例方法、类方法、静态方法的区别与作用详解...
本文实例讲述了Python实例方法.类方法.静态方法的区别与作用.分享给大家供大家参考,具体如下: Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调 ...
- python静态方法怎么调用_python实例方法、静态方法和类方法
Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...
- Python 静态方法 类方法
静态方法和实例方法的区别主要体现在两个方面: 1. 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面 ...
- Python静态方法 类方法
通常情况下,类中函数中定义的所有函数,,都是对象的绑定方法,除此之外,还有专门的静态方法和类方法,这两个是专门给类使用的,但是对象非要调用也是不会报错的. 对象在调用的时候会把自己传递给self,也就 ...
- 类属性,实例属性,私有属性,类方法,实例方法,静态方法,私有方法,魔法方法
实例对象可以调用实例方法/属性.静态方法.类方法/属性,类对象只能调用静态方法和类方法/属性 dir()函数不带参数时,返回当前范围内的变量.方法和定义的类型列表 dir()函数带参数时会返回该参数的 ...
- 1023day5:class类属性方法、每次执行类属性+1、内建模块、时间装饰器wrapper、面向对象__slots__方法:限制类的属性等基础知识、正则表达式基础知识、多态鸭子类型
文章目录 一.类class 1.Python类class 属性 方法 2.类的构造方法__init__() 3.每次执行一次类的属性+1 二.模块 1.内建模块 2.第三方模块 3.定义自己的模块 三 ...
最新文章
- java多线程之锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
- mysql数据库---授权语句以及备份
- 蓝牙4.0BLE抓包(一) - 搭建EN-Dongle工作环境 使用EN-Dongle抓包 nRF51822
- 怎样新建Oracle数据库
- 关于内存流与字符串的转换
- dvd管理器java_Java DVD管理器 基础示例代码下载
- 音视频技术开发周刊 68期
- 1分钟了解“区块链分叉”的本质
- exchanger_如何通过示例在Java中使用Exchanger
- 自定义ant中table表格的展开图标 修改ant-vue-design中嵌套表格table的expandIcon自定义图标
- 图片服务 - thumbor启用AutoJPG
- 性能比拼!超详细的Tengine GEMM矩阵乘法汇编教程
- “反催收”渐成黑灰产业 专家呼吁协同治理“债闹”黑灰产
- JNDI技术、JDBC框架、几种元数据介绍
- springboot配置错误页面
- 谈谈我对《ThoughtWorks文集》中多语言开发部分的看法
- 75道经典逻辑思维题及答案
- ESP32 入门笔记06: WIFI时钟 + FreeRTOS+《两只老虎》 (ESP32 for Arduino IDE)
- 关于打游戏ping值不稳定问题的解决经历(疑难篇)
- Stripe 银行卡支付功能初步指南(Java)