实例方法

普通实例方法(instance method),第一个参数需要是self,它表示一个具体的实例本身,只能被实例对象调用,通过self引用的可能是类属性、也有可能是实例属性。

实例方法访问类属性、实例属性,类方法、实例方法、静态方法。


静态方法

静态方法(static method),使用装饰器@staticmethod来定义静态方法,不需要参数self 。静态方法属于类,与实例无关,因此可以被类对象直接调用。也正是因为静态⽅法中不需要额外定义参数,因此要在静态⽅法中引⽤类属性,必须通过类对象来引⽤。

在TestOps类中,定义了一个类属性time,每次调用common()这个静态方法的时候都返回包含类属性的信息,但是当类名变化时,那么该静态方法中的类属性TestOps.time也需要变成对应类名.time,这个问题可以用类方法解决。

注意,静态方法不能访问实例属性和实例方法。


类方法

类方法(class method),使用装饰器@classmethod来定义类方法,至少传入一个cls参数,且为第一参数,通过cls引用的必定是类对象的属性和方法,执行类方法时,自动将调用该方法的类赋值给cls参数。

使用类方法,就可以解决上述使用静态方法出现的问题,当类名改变,对类方法进行修改。

注意,类方法也不能访问实例属性和实例方法。最后,实例方法只能被实例对象调用,静态方法(被@staticmethod装饰)、类方法(被@classmethod装饰),可以被类或类的实例对象调用。


类中静态方法调用静态方法与类方法调用静态方法实现

通过如下实例了解静态方法、类方法之间的相互调用。

python用类名直接调用方法_Python类的实例方法、静态方法、类方法详解,附代码示例...相关推荐

  1. python连接数据库并编写调用函数_Python使用pyodbc访问数据库操作方法详解

    本文实例讲述了Python使用pyodbc访问数据库操作方法.分享给大家供大家参考,具体如下: 1.连接数据库 1)直接连接数据库和创建一个游标(cursor) cnxn =pyodbc.connec ...

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

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

  3. python用类名直接调用方法_一文读全 Python 的面向对象编程方法

    背景介绍: Python 支持三种形式的编程,分别是:"命令式"."函数式"和"面向对象式". 很多优秀的开源 Python 项目里都用到了 ...

  4. python定义私有变量的方法_Python类中的 私有变量和私有方法

    默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...

  5. python中readlines方法_Python中read(),readline(),readlines()使用详解

    # python3.7 1.read()会读取文件的全部内容,read(size)方法,每次最多读取size个字节的内容,返回字符串. #a.txt  第一行为abc #a.txt  第二行为a12 ...

  6. python源程序文件的扩展名_python程序文件扩展名知识点详解

    python程序文件的扩展名称是什么 python程序的扩展名有.py..pyc..pyo和.pyd..py是源文件,.pyc是源文件编译后的文件,.pyo是源文件优化编译后的文件,.pyd是其他语言 ...

  7. python爬虫多线程是什么意思_python爬虫中多线程的使用详解

    queue介绍 queue是python的标准库,俗称队列.可以直接import引用,在python2.x中,模块名为Queue.python3直接queue即可 在python中,多个线程之间的数据 ...

  8. python分析方向的第三方库_Python标准库与第三方库详解

    干货大礼包!21天带你轻松学Python(文末领取更多福利) 点击查看课程视频地址 本课程来自于千锋教育在阿里云开发者社区学习中心上线课程<Python入门2020最新大课>,主讲人姜伟. ...

  9. python中values是什么意思_Python values()与itervalues()的用法详解

    dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value: d = { 'Adam': 95, 'Li ...

最新文章

  1. 在 Jenkins 中使用声明式 Pipeline 构建 Android 项目
  2. golang中的指针
  3. Ubuntu 15.04 安装TensorFlow(源码编译) 及测试梵高作画
  4. 论文浅尝 | 多标签分类中的元学习
  5. mysql查询系统年月_mysql每个月自动创建一张表,以年月做为表名,如何进行联合查询...
  6. Hibernate学习笔记之EHCache的配置
  7. 你有关注自己的简历吗?优秀的程序员简历是怎样炼成的?
  8. 【LA 2572】Viva Confetti(圆与圆弧覆盖+精度问题)
  9. 串级控制系统的计算机控制原理图,串级PID控制原理
  10. 多媒体计算机辅助英语教学,多媒体计算机辅助初中英语教学的实践研究
  11. CRMEB 知识付费模版消息修改教程
  12. 使用‘终端’融合磁盘然后进行MAC重装系统
  13. ATeam社区(牛客网项目第七章)
  14. MATLAB使用符号工具箱计算函数的5阶麦克劳林多项式的四种方法(附指定阶数、指定点的泰勒展开)
  15. Android 端的基于TCP的小型服务器_超级简单
  16. Jakarta Bean Validation,Constrain once, validate everywhere!
  17. System.out.println()的使用
  18. Python基础(十八):学员管理系统应用
  19. 苹果公司的企业文化_企业文化到底有什么用?
  20. 蓝桥杯真题系列:第十一届蓝桥杯C语言B组集锦

热门文章

  1. 动态规划(最长递增子序列)---最长递增子序列
  2. Python pickle使用
  3. python 的基础 学习 第七天 is id 编码的补充
  4. GeneXus 图片的创建与删除1
  5. Leetcode 143. 重排链表
  6. LeetCode 中等难度 92. 反转链表 II解题思路
  7. 卫星导航技术的源起很有戏剧性
  8. 如何让自己时刻冷静的方法_如何锻炼自己的口才及沟通技巧?这5个方法让你受用一辈子...
  9. tensorflow安装教程
  10. linux umount swap,挂载、卸载、free查看内存情况、创建交换分区、回环设备、dd命令、自动挂载、fuser...