python用类名直接调用方法_Python类的实例方法、静态方法、类方法详解,附代码示例...
实例方法
普通实例方法(instance method),第一个参数需要是self,它表示一个具体的实例本身,只能被实例对象调用,通过self引用的可能是类属性、也有可能是实例属性。
实例方法访问类属性、实例属性,类方法、实例方法、静态方法。
静态方法
静态方法(static method),使用装饰器@staticmethod来定义静态方法,不需要参数self 。静态方法属于类,与实例无关,因此可以被类对象直接调用。也正是因为静态⽅法中不需要额外定义参数,因此要在静态⽅法中引⽤类属性,必须通过类对象来引⽤。
在TestOps类中,定义了一个类属性time,每次调用common()这个静态方法的时候都返回包含类属性的信息,但是当类名变化时,那么该静态方法中的类属性TestOps.time也需要变成对应类名.time,这个问题可以用类方法解决。
注意,静态方法不能访问实例属性和实例方法。
类方法
类方法(class method),使用装饰器@classmethod来定义类方法,至少传入一个cls参数,且为第一参数,通过cls引用的必定是类对象的属性和方法,执行类方法时,自动将调用该方法的类赋值给cls参数。
使用类方法,就可以解决上述使用静态方法出现的问题,当类名改变,对类方法进行修改。
注意,类方法也不能访问实例属性和实例方法。最后,实例方法只能被实例对象调用,静态方法(被@staticmethod装饰)、类方法(被@classmethod装饰),可以被类或类的实例对象调用。
类中静态方法调用静态方法与类方法调用静态方法实现
通过如下实例了解静态方法、类方法之间的相互调用。
python用类名直接调用方法_Python类的实例方法、静态方法、类方法详解,附代码示例...相关推荐
- python连接数据库并编写调用函数_Python使用pyodbc访问数据库操作方法详解
本文实例讲述了Python使用pyodbc访问数据库操作方法.分享给大家供大家参考,具体如下: 1.连接数据库 1)直接连接数据库和创建一个游标(cursor) cnxn =pyodbc.connec ...
- 类的实例方法静态方法类方法属性方法属性
目录: 分类 实例方法 静态方法 类方法 属性方法 属性 分类: 按照调用方式可以分为3种,实例方法.静态方法.和类方法 实例方法 实例方法只能通过实例对象调用,不能通过类进行调用.实例方法再定义时候 ...
- python用类名直接调用方法_一文读全 Python 的面向对象编程方法
背景介绍: Python 支持三种形式的编程,分别是:"命令式"."函数式"和"面向对象式". 很多优秀的开源 Python 项目里都用到了 ...
- python定义私有变量的方法_Python类中的 私有变量和私有方法
默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...
- python中readlines方法_Python中read(),readline(),readlines()使用详解
# python3.7 1.read()会读取文件的全部内容,read(size)方法,每次最多读取size个字节的内容,返回字符串. #a.txt 第一行为abc #a.txt 第二行为a12 ...
- python源程序文件的扩展名_python程序文件扩展名知识点详解
python程序文件的扩展名称是什么 python程序的扩展名有.py..pyc..pyo和.pyd..py是源文件,.pyc是源文件编译后的文件,.pyo是源文件优化编译后的文件,.pyd是其他语言 ...
- python爬虫多线程是什么意思_python爬虫中多线程的使用详解
queue介绍 queue是python的标准库,俗称队列.可以直接import引用,在python2.x中,模块名为Queue.python3直接queue即可 在python中,多个线程之间的数据 ...
- python分析方向的第三方库_Python标准库与第三方库详解
干货大礼包!21天带你轻松学Python(文末领取更多福利) 点击查看课程视频地址 本课程来自于千锋教育在阿里云开发者社区学习中心上线课程<Python入门2020最新大课>,主讲人姜伟. ...
- python中values是什么意思_Python values()与itervalues()的用法详解
dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value: d = { 'Adam': 95, 'Li ...
最新文章
- 在 Jenkins 中使用声明式 Pipeline 构建 Android 项目
- golang中的指针
- Ubuntu 15.04 安装TensorFlow(源码编译) 及测试梵高作画
- 论文浅尝 | 多标签分类中的元学习
- mysql查询系统年月_mysql每个月自动创建一张表,以年月做为表名,如何进行联合查询...
- Hibernate学习笔记之EHCache的配置
- 你有关注自己的简历吗?优秀的程序员简历是怎样炼成的?
- 【LA 2572】Viva Confetti(圆与圆弧覆盖+精度问题)
- 串级控制系统的计算机控制原理图,串级PID控制原理
- 多媒体计算机辅助英语教学,多媒体计算机辅助初中英语教学的实践研究
- CRMEB 知识付费模版消息修改教程
- 使用‘终端’融合磁盘然后进行MAC重装系统
- ATeam社区(牛客网项目第七章)
- MATLAB使用符号工具箱计算函数的5阶麦克劳林多项式的四种方法(附指定阶数、指定点的泰勒展开)
- Android 端的基于TCP的小型服务器_超级简单
- Jakarta Bean Validation,Constrain once, validate everywhere!
- System.out.println()的使用
- Python基础(十八):学员管理系统应用
- 苹果公司的企业文化_企业文化到底有什么用?
- 蓝桥杯真题系列:第十一届蓝桥杯C语言B组集锦
热门文章
- 动态规划(最长递增子序列)---最长递增子序列
- Python pickle使用
- python 的基础 学习 第七天 is id 编码的补充
- GeneXus 图片的创建与删除1
- Leetcode 143. 重排链表
- LeetCode 中等难度 92. 反转链表 II解题思路
- 卫星导航技术的源起很有戏剧性
- 如何让自己时刻冷静的方法_如何锻炼自己的口才及沟通技巧?这5个方法让你受用一辈子...
- tensorflow安装教程
- linux umount swap,挂载、卸载、free查看内存情况、创建交换分区、回环设备、dd命令、自动挂载、fuser...