一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“面向对象如何快速实现(二)”。
一、类方法 classmethod
类方法是属于类本身的,但也可以使用实例对象访问。只是两者调用的方式有区别(传递参数个数上面)。
类方法在定义中,第一个参数必须为 cls (当然参数名称也可以随意定义,但是cls 是python默认的规定最好不修改)
类方法定义的语法规范:
@classmethod
def 方法名称 (cls [, arg1[, arg2, …[, argN]]]) :
使用装饰器方式定义,告知Pyhton解析器该方法为类方法,解析器优化该方法的执行效率。
(一)类方法的定义及各种调用
第一个参数 cls 代表 当前的类,在使用类直接调用方法的时候 忽略第一个参数,只需传递满足在实例方法定义过程中的 n-1 个后续参数数量即可。
而类的对象实例调用时,同样需要传递与定义数量匹配的n-1个参数。
示例:
ch08-demo09-classmethod.py
(二)类变量的定义及访问操作
类变量 与 类方法 可以成对使用。通过类方法中访问操作类变量。
类变量 声明在类中,类中的各种类型方法均可以访问。
示例:
ch08-demo10-classvar.py
(三)实例方法访问类方法和变量
实例方法可以访问操作类方法 和 类变量。
可以通过类名或者self参数访问类方法和属性
示例:
ch08-demo11-classvar.py
二、静态方法 staticmethod
静态方法是属于类本身的,但也可以使用对象实例调用。但两者调用的方式有区别(传递参数个数上面)。
静态方法在定义中,没有参数要求
静态方法定义的语法规范:
@staticmethod
def 方法名称 ([, arg1[, arg2, …[, argN]]]) :
使用装饰器方式定义,告知Pyhton解析器该方法为类方法,解析器优化该方法的执行效率。
(一)静态方法的定义及各种调用
静态方法在调用的时候,需要传递与定义同等个数的参数。
静态方法可以被类或对象实例调用。
示例:
ch08-demo11-staticmethod.py
(二)Python3中没有实际意义的静态变量
由于Python编程语言为动态语言,因此严格意义上的静态变量是没有必要的。
但是,静态方法可以访问 实例变量 和 类变量。
示例,静态方法访问类变量:
ch08-demo11-staticmethod.py
三、普通方法 ordinaryMethod
普通方法在类中的定义与定义一个函数无任何区别。
普通方法 可以被 类直接调用 但 不能被 对象实例调用。
普通方法无法访问 实例变量 和 类变量。
类方法定义的语法规范:
def 方法名称 ([, arg1[, arg2, …[, argN]]]) :
总结:四种方法之间的区别
业务需求:
创建一个游戏场景,涉及3个场景和1个功能。
① 场景1:草场作战,消耗战斗力200
② 场景2:修炼,增长战斗力100
③ 场景3:多人团战,消耗战斗力500
④ 功能1:显示玩家状态
当玩家战斗力为0时,阵亡!
技术需求:
使用面向对象的封装特性实现任务的创建及场景功能的调用。