Python 子类继承父类后,可以调用父类中的函数吗

Python 子类继承父类后,可以调用父类中的函数吗,第1张

class ax:

    def bx(self):   #函数定义要有括号,类方法最少要有一个参数

        print '我出来了'

class cx(ax):

    xxx='ssss'

dx=cx()   #生成类实例要有括号

dxbx()

递归获取某一父类的所有子类

all_subclasses = {'0': '0'}

def get_all_classes(model):

    """

    获取父类的所有子类

    """

    for subclass in model__subclasses__():

        # print(subclass_metaabstract)

        if (not (subclass__name__) in all_subclasseskeys()) and (not subclass_metaabstract):

            all_subclasses[subclass__name__] = subclass

        get_all_classes(subclass)

    return all_subclasses

这里主要用到了__subclasses__() 这个方法,这个方法返回的是这个类的子类的集合,用递归的方法,去获取传入类型的所有子类。返回给全局变量 all_subclasses这个字典集合。

在对于python中类的使用上,我们分出了子类和父类两种。对于这二者之间的关系,我们可以简单理解为继承。不过python中加入了实例的讨论,那么对于继承后的子类来说,父类的实例是否被继承又是我们所需要思考的问题。下面我们就子类和父类进行简单介绍,然后就二者之间的继承关系重点分析。

1概念

子类和父类主要描述的是类之间的继承关系,即所属关系。继承的类可在被继承的类的基础上添加格外的参数和行为,新类称为子类,扩展类;被继承的类称为基类、父类或者超类。

2继承关系

子类与父类的关系是 “is” 的关系,如上 Cat 继承于 Animal 类,我们可以说:

“A”是 Animal 类的实例,但,“A”不是 Cat 类的实例。

“C”是 Animal 类的实例,“C”也是 Cat 类的实例。

判断对象之间的关系,我们可以通过 isinstance (变量,类型) 来进行判断:

print('"A" IS Animal', isinstance(A, Animal))

print('"A" IS Cat', isinstance(A, Cat))

print('"C" IS Animal', isinstance(C, Animal))

print('"C" IS Cat', isinstance(C, Cat))

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

python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法。如果一个方法在子类的实例中被调用,或者一个属性在子类的实例中被访问,但是该方法或属性在子类中并不存在,那么就会自动的去其父类中进行查找。

继承父类后,就能调用父类方法和访问父类属性,而要完成整个集成过程,子类是需要调用的构造函数的。

子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题

如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造函数就不会被执行,导致子类实例访问父类初始化方法中初始的变量就会出现问题。

以上就是关于Python 子类继承父类后,可以调用父类中的函数吗全部的内容,包括:Python 子类继承父类后,可以调用父类中的函数吗、python 查看类有哪些子类、pythonclass.function的父类是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10093164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存