川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

Python | 面向对象如何快速实现(二)

作者:川石学院 日期:2022-04-07 17:52:05 点击数:

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“面向对象如何快速实现(二)”。

自动化测试:Python常见的几种编程模式(图1)

  一、类方法 classmethod

  类方法是属于类本身的,但也可以使用实例对象访问。只是两者调用的方式有区别(传递参数个数上面)。

  类方法在定义中,第一个参数必须为 cls (当然参数名称也可以随意定义,但是cls 是python默认的规定最好不修改)

  类方法定义的语法规范:

  @classmethod

  def 方法名称 (cls [, arg1[, arg2, …[, argN]]]) :

  使用装饰器方式定义,告知Pyhton解析器该方法为类方法,解析器优化该方法的执行效率。

  (一)类方法的定义及各种调用

  第一个参数 cls 代表 当前的类,在使用类直接调用方法的时候 忽略第一个参数,只需传递满足在实例方法定义过程中的 n-1 个后续参数数量即可。

  而类的对象实例调用时,同样需要传递与定义数量匹配的n-1个参数。

  示例:

  ch08-demo09-classmethod.py

Python | 面向对象如何快速实现(二)(图2)

  (二)类变量的定义及访问操作

  类变量 与 类方法 可以成对使用。通过类方法中访问操作类变量。

  类变量 声明在类中,类中的各种类型方法均可以访问。

  示例:

ch08-demo10-classvar.py

Python | 面向对象如何快速实现(二)(图3)

  (三)实例方法访问类方法和变量

  实例方法可以访问操作类方法 和 类变量。

  可以通过类名或者self参数访问类方法和属性

  示例:

ch08-demo11-classvar.py

Python | 面向对象如何快速实现(二)(图4)

  二、静态方法 staticmethod

  静态方法是属于类本身的,但也可以使用对象实例调用。但两者调用的方式有区别(传递参数个数上面)。

  静态方法在定义中,没有参数要求

  静态方法定义的语法规范:

  @staticmethod

  def 方法名称 ([, arg1[, arg2, …[, argN]]]) :

  使用装饰器方式定义,告知Pyhton解析器该方法为类方法,解析器优化该方法的执行效率。

  (一)静态方法的定义及各种调用

  静态方法在调用的时候,需要传递与定义同等个数的参数。

  静态方法可以被类或对象实例调用。

  示例:

ch08-demo11-staticmethod.py

Python | 面向对象如何快速实现(二)(图5)

  (二)Python3中没有实际意义的静态变量

  由于Python编程语言为动态语言,因此严格意义上的静态变量是没有必要的。

  但是,静态方法可以访问 实例变量 和 类变量。

  示例,静态方法访问类变量:

ch08-demo11-staticmethod.py

Python | 面向对象如何快速实现(二)(图6)

  三、普通方法 ordinaryMethod

  •   普通方法在类中的定义与定义一个函数无任何区别。

  •   普通方法 可以被 类直接调用 但 不能被 对象实例调用。

  •   普通方法无法访问 实例变量 和 类变量。

  类方法定义的语法规范:

  def 方法名称 ([, arg1[, arg2, …[, argN]]]) :

  总结:四种方法之间的区别

Python | 面向对象如何快速实现(二)(图7)

  业务需求:

  •   创建一个游戏场景,涉及3个场景和1个功能。

  ① 场景1:草场作战,消耗战斗力200

  ② 场景2:修炼,增长战斗力100

  ③ 场景3:多人团战,消耗战斗力500

  ④ 功能1:显示玩家状态

  •   当玩家战斗力为0时,阵亡!

Python | 面向对象如何快速实现(二)(图8)

  技术需求:

  使用面向对象的封装特性实现任务的创建及场景功能的调用。

Python | 面向对象如何快速实现(二)(图9)


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2022-04-07 17:52:05
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2022-04-07 17:52:05
  • 国外的月亮也不一定比国内测试猿的年薪美~2022-04-07 17:52:05
  • 建筑工程专业朱同学成功转行为软件测试人!2022-04-07 17:52:05
  • 财务管理专业转行软件测试月薪甩会计几条街!2022-04-07 17:52:05
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2022-04-07 17:52:05
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2022-04-07 17:52:05
  • 文科生转行软件测试照样拿下高薪15K!2022-04-07 17:52:05
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2022-04-07 17:52:05
  • 毕业1年,迷茫的他最终选择转行软件测试2022-04-07 17:52:05