python子类如何继承父类的实例变量

类型1:父类和子类的实例变量均不需要传递

class A(object):
  def __init__(self):
    self.name = "cui"

  def get_name(self):
    return self.name

class B(A):
  def __init__(self):
    super(B,self).__init__()
    self.age = 12

b = B()

类型2:父类的实例变量不需要传递,子类的实例变量需要传递

class A(object):
  def __init__(self):
    self.name = "zhang"

  def get_name(self):
    return self.name

class B(A):
  def __init__(self,age):
    super(B,self).__init__()
    self.age = age

b = B("san")

类型3:父类有部分实例变量需要传递,子类实例变量需要传递

class A(object):
  def __init__(self,sex):
    self.name = "zhang"
    self.sex = sex

  def get_name(self):
    return self.name + self.sex

class B(A):
  def __init__(self,sex,age):
    super(B,self).__init__(sex)
    self.age = age

b = B("男",12)

类型4:父类和子类的所有变量都需要传递

class A(object):
  def __init__(self,name,sex):
    self.name = name
    self.sex = sex

  def get_name(self):
    return self.name + self.sex

class B(A):
  def __init__(self,name,sex,age):
    super(B,self).__init__(name,sex)
    self.age = age

b = B("zhang","男",12)

类型5:父类变量都需要传递,子类有部分实例变量需要传递

class A(object):
  def __init__(self,name,sex):
    self.name = name
    self.sex = sex

  def get_name(self):
    return self.name + self.sex

class B(A):
  def __init__(self,name,sex,age):
    super(B,self).__init__(name,sex)
    self.age = age
    self.courage = "高中"

b = B("zhang","男",12)

类型6:父类和子类都有部分实例变量需要传递

class A(object):
  def __init__(self,name):
    self.name = name
    self.sex = "女"

  def get_name(self):
    return self.name + self.sex

class B(A):
  def __init__(self,name,sex,age):
    super(B,self).__init__(name)
    self.age = age
    self.courage = "高中"

b = B("zhang","男",12)

总结:

子类继承父类的构造函数中,在子类的构造函数中,__init__方法中的变量是包括自己和父类所有需要传递的变量,而在super().__init__方法中的参数仅仅包括父类需要传递的变量

  def __init__(self,name,sex,age):
    super(B,self).__init__(name)
    self.age = age
    self.courage = "高中"

以上就是python子类如何继承父类的实例变量的详细内容,更多关于python子类继承父类变量的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python 实现子类获取父类的类成员方法

    大家好,今天在写代码的时候,遇到了这样一种情况.我有如下所示的几个类用来存放程序配置(其实当做命名空间来用,同时感觉能够继承方便一点), import os class Config: BASE_DIR = "/tmp" class TestConfig(Config): DATA_DIR = os.path.join(Config.BASE_DIR, "data") 然后我在子类中想要访问父类的类成员变量,而且这两个类都是只有类成员变量.感觉目前我使用的方法笨一点

  • Python实现子类调用父类的初始化实例

    前言 python中进行面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果在子类中这些属性未经过初始化,使用时就会出错. 例如以下的代码: class A(object): def __init__(self): self.a = 5 def function_a(self): print('I am from A, my value is %d' % self.a) class B(A): def __init__(self):

  • python中子类调用父类函数的方法示例

    前言 本文主要给大家介绍了关于python子类调用父类函数的相关内容,Python中子类中的__init__()函数会覆盖父类的函数,一些情况往往需要在子类里调用父类函数.下面话不多说了,来一起看看详细的介绍: 如下例程里,???处是需要调用父类函数的地方,接下来结合例程具体介绍. # -*- coding:utf-8 -*- class Student: def __init__(self,name): self.name=name def ps(self): print('I am %s'%

  • python中子类与父类的关系基础知识点

    在对于python中类的使用上,我们分出了子类和父类两种.对于这二者之间的关系,我们可以简单理解为继承.不过python中加入了实例的讨论,那么对于继承后的子类来说,父类的实例是否被继承又是我们所需要思考的问题.下面我们就子类和父类进行简单介绍,然后就二者之间的继承关系重点分析. 1.概念 子类和父类主要描述的是类之间的继承关系,即所属关系.继承的类可在被继承的类的基础上添加格外的参数和行为,新类称为子类,扩展类:被继承的类称为基类.父类或者超类. 2.继承关系 子类与父类的关系是 "is&qu

  • Python子类继承父类构造函数详解

    如果在子类中需要父类的构造方法就需要显式地调用父类的构造方法,或者不重写父类的构造方法. 子类不重写 __init__,实例化子类时,会自动调用父类定义的 __init__. class Father(object): def __init__(self, name): self.name=name print ( "name: %s" %( self.name) ) def getName(self): return 'Father ' + self.name class Son(F

  • python支持多继承吗

    大部分面向对象的编程语言(除了C++)都只支持单继承,而不支持多继承,为什么呢?因为多继承不仅增加编程复杂度,而且容易导致莫名其妙的错误. Python虽然语法上支持多继承,但是却不推荐使用多继承,而是推荐使用单继承,这样可以保证编程思路更清晰,也可以避免不必要的麻烦. 当以一个子类有多个直接父类时,该子类会继承得到所有父类的方法,但是如果其中有多个父类包含同名方法会发生什么?此时排在前面的父类中的方法会"遮蔽"后面父类中的方法. 栗子如下: #coding=utf-8 class I

  • python中子类继承父类的__init__方法实例

    前言 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__方法在类的一个对象被建立时,马上运行.这个方法可以用来对你的对象做一些你希望的 初始化 . 注意:这个名称的开始和结尾都是双下划线. 父类A class A(object): def __init__(self, name): self.name=name print "name:", self.name def getName(self): return 'A ' + sel

  • python 子类调用父类的构造函数实例

    当子类继承父类后,需要调用父类的方法和属性时,需要调用父类的初始化函数. class A(object): def __init__(self): self.nameaa = 'aa' def funca(self): print('function a %s' % self.nameaa) class B(A): def __init__(self): self.namebb = 'bb' def funcb(self): print('function b %s' % self.namebb

  • python继承threading.Thread实现有返回值的子类实例

    继承与threading.Thread实现有返回值的子类MyThread,废话不多说,大家直接看代码 import threading class MyThread(threading.Thread): def __init__(self,func,args=()): super(MyThread,self).__init__() self.func = func self.args = args def run(self): self.res = self.func(*self.args) d

  • Python多重继承之菱形继承的实例详解

    继承是面向对象编程的一个重要的方式,通过继承,子类就可以扩展父类的功能.在python中一个类能继承自不止一个父类,这叫做python的多重继承(Multiple Inheritance ). 语法 class SubclassName(BaseClass1, BaseClass2, BaseClass3, ...): pass 菱形继承 在多层继承和多继承同时使用的情况下,就会出现复杂的继承关系,多重多继承. 其中,就会出现菱形继承.如下图所示.mark 在这种结构中,在调用顺序上就出现了疑惑

  • Python实现子类调用父类的方法

    本文实例讲述了Python实现子类调用父类的方法.分享给大家供大家参考.具体实现方法如下: python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法.如果一个方法在子类的实例中被调用,或者一个属性在子类的实例中被访问,但是该方法或属性在子类中并不存在,那么就会自动的去其父类中进行查找. 继承父类后,就能调用父类方法和访问父类属性,而要完成整个集成过程,子类是需要调用的构造函数的. 子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题

随机推荐