python中类的一些方法分析

706次阅读  |  发布于5年以前

本文实例分析了python中类的一些方法,分享给大家供大家参考。具体分析如下:

先来看看下面这段代码:


    class Super: 
      def delegate(self): 
        self.action() 

    class Provider(Super): 
      def action(self): 
        print 'in Provider.action' 

    x = Provider() 
    x.delegate() 

本文实例运行环境为Python2.7.6

运行结果如下:

in Provider.action

在Super类中定义delegate()方法,delegate中调用self.action,在Provider子类中实现action方法。子类调用父类的delegate方法时,实际是调用自己的action方法。。

总之一句话:

这里子类实现了父类delegate中所期望的action方法

再来看看下面这段代码:


    class Super: 
      def delegate(self): 
        self.action() 
      def method(self): 
        print 'super method' 

    class Inherit(Super): 
      pass 

    class Replace(Super): 
      def method(self): 
        print "replace method" 

    class Extended(Super): 
      def method(self): 
        print 'in extended class' 
        Super.method(self) 
        print 'out extended class' 

    class Provider(Super): 
      def action(self): 
        print 'in Provider.action' 

    x = Inherit() 
    x.method() 
    print '*'*50 

    y = Replace() 
    y.method() 
    print '*'*50 

    z = Extended() 
    z.method() 
    print '*'*50 

    x = Provider() 
    x.delegate() 

运行结果如下:


    super method 
    ************************************************** 
    replace method 
    ************************************************** 
    in extended class 
    super method 
    out extended class 
    ************************************************** 
    in Provider.action 

分别继承父类的方法,替换父类的方法,扩展了父类的方法
Super类定义了delegate方法并期待子类实现action函数,Provider子类实现了action方法.

相信本文所述对大家Python程序设计的学习有一定的借鉴价值。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8