暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

西安川石 2022-03-29
144


每天一个测试技术

只需几分钟

川石信息 带你学点更好的




川石信息|腾讯课堂

免费试学 | 自动化测试



类方法 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时,阵亡!



                  技术需求:


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







                  ⭐川石信息 春季特惠⭐


                  线上提升班,火热活动中,最高优惠直降1000+

                  涨薪必备:高级性能测试+自动化测试开发,一线企业offer挑到手软!

                  报名还送 jmeter python / redis 三门免费课程包!

                  名额有限,扫一扫下方图片二维码速度联系我预约报名!

                  😎来川石,更优质的就业机会等着你。



                  今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!


                  温馨提示:添加老师微信【13691729932】可以获取全套软件测试自学资料!



                   往期回顾 

                  面向对象如何快速实现(一)



                  大神邀你加入

                  软件测试群

                  免费软件测试课

                  川石课堂



                  文章转载自西安川石,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论