美文网首页
Python程序中调用子类时直接修改父类的属性

Python程序中调用子类时直接修改父类的属性

作者: 无聊的IT | 来源:发表于2016-10-31 15:28 被阅读0次

在学习类的继承时,被“在子类中调用和修改父类的属性”卡住了。通过在网上查阅资料,大致搞明白了。主要有以下三点:

1. 子类的__init__方法中通过“<父类名>.__init__(self)”语句将父类的属性继承过来,见下面示例中标注“#例2”处。
  2. 如果要在程序中调用子类时直接通过参数的形式修改父类继承过来的属性,那么子类的__init__方法中需要在self后面跟上要赋值的参数,见下面示例中标注“#例1”处。
  3. 即使是通过“<父类名>.__init__(self)”语句继续过来的父类的属性,也需要在子类的__init__方法中使用self.<变量名>=变量值的方式进行赋值,否则在子类中无法引用变量,见下面示例中标注“#例3”和“#例4”处。

#-*-coding:utf-8-*-

class a:    
    '''
    这是父类
    '''
    def __init__(self,aa=1,bb=1):
        self.aa=aa
        self.bb=bb
        
    def myprint(self):
        print self.aa,self.bb
        
class b(a):
    '''
    这是子类
    '''
    def __init__(self,aa,bb):   #例1
        a.__init__(self)      #例2
        self.aa=aa               #例3
        self.bb=bb               #例4
    
    def myprint2(self):
        print self.aa,self.bb
        
    def myprint3(self):
        a.myprint()
    
y=b(4,5)        #调用子类,并给出参数
y.myprint()     #此处调用的是父类的方法,而给出参数是由子类给出的

执行结果:

4 5

从以上执行结果看,我们通过y=b(4,5)方式直接调用子类并给出参数“4,5”,而使用y.myprint调用了父类的方法,最后的计算结果是根据子类的参数计算得出的。说明我们在调用子类时直接修改了父类aa和bb的属性。

相关文章

  • Python程序中调用子类时直接修改父类的属性

    在学习类的继承时,被“在子类中调用和修改父类的属性”卡住了。通过在网上查阅资料,大致搞明白了。主要有以下三点: 1...

  • python 面向对象: super()

    python 关于 super 的使用 子类对象调用父类方法 :super(B,b).hh() 子类中调用父类方法...

  • Rails方法之——super

    如上图,super.rb中Plane类继承了Car类。子类调用了父类的相同属性时,可以用super调用父类的属性。

  • Java——继承的理解

    1.子类可以调用父类的属性和方法(private修饰的不可以调用),当子类和父类有同名的属性时,通过用this.属...

  • iOS 小知识点总结

    子类实现父类方法时,监测子类是否调用super方法。 在父类中声明方法时: 子类中实现该父类方法: 图片压缩

  • super关键字

    super关键字代表父类,在子类中使用父类的属性和方法,可以用super显式指定,当子类中调用---子类中没有,父...

  • python-面向对象——继承

    继承 可以多层继承,子类可以直接调用父类的父类的函数 重写 调用被重写的方法: 多继承 python支持多继承 所...

  • js 继承

    1.构造继承 核心:在子类的内部调用父类,通过call改变父类中this的指向 等于是复制父类的实例属性给子类 ...

  • Python面向对象编程-3·继承

    一、继承的概念: 子类 拥有 父类 的所有 方法 和 属性 子类 继承自 父类,可以直接 享受 父类中已经封装好的...

  • Python调用父类中的方法和super()的用途

    直接调用父类的super方法 调用父类的init()方法,确保父类被正确初始化 当覆盖了python中的特殊方法时

网友评论

      本文标题:Python程序中调用子类时直接修改父类的属性

      本文链接:https://www.haomeiwen.com/subject/yrrputtx.html