首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

前言 python中进行面向对象编程,当在子类实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果在子类中这些属性未经过初始化,使用时就会出错。...当实例化这个类时,self就被自动绑定到当前的实例。绑定也就意味着这个实例的属性,方法都可以通过‘self.***的方式进行调用。...但是如果通过类名直接调用类的方法,self参数就不会被自动绑定到实例上,可以绑定到我们指定的实例上。也就是子类实例上,在这里就是类B了。...所以这里所说的未绑定的父类__init__方法 就是指未绑定父类实例的父类__init__方法。...以上这篇Python实现子类调用父类的初始化实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

python中子类调用父类的初始化方法

如果一个方法在子类实例中被调用,或者一个属性在子类实例中被访问,但是该方法或属性在子类中并不存在,那么就会自动的去其父类中进行查找。...子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题 如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造函数就不会被执行,导致子类实例访问父类初始化方法中初始的变量就会出现问题...,构造函数被重写,但新的构造方法没有任何关于初始化父类的namea属性的代码,为了达到预期的效果,子类的构造方法必须调用其父类的构造方法来进行基本的初始化。...二、第二种解释     在Python中子类继承父类的过程中,如果子类不覆盖父类的__init__()方法,则子类默认将执行与父类一样的初始化方法。...但是假如子类自己重写 了(也成为覆盖)父类的__init__()方法,那么就需要显式的调用父类的初始化方法了。有两种方法可以做到:      1:ParentClass.

2.1K10

实例变量的懒初始化

今天遇到一个很有趣的问题,由于业务要求,需要懒初始化一个实例变量。 简单方法 很顺手就写出下面的代码。...LazyFieldInitializer(); instance.someOp(); } } 但这种方法存在问题,线程不安全,当两个线程同时调用someOp方法,obj变量被初始化了两次...给obj分配内存 调用Object的构造函数来初始化成员变量 将obj对象指向分配的内存空间(执行完这步obj就为非null了) 这个就是JVM很有特色的指令重排序优化。...如果是后者,则在3执行完毕、2 未执行之前,被另一个线程二抢占了,这时 instance 已经是非 null 了(但却没有初始化),这个线程拿着这个obj引用去干活,自然就会出问题。...* 饿汉模式, 类变量类加载时在类的静态初始化块里初始化, 线程安全 */ public class Singleton4 { private static Singleton4 instance

2K40

Java | 类、实例初始化 、方法重写规则

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 类、实例初始化 、方法重写规则...类的初始化过程: ①一个类要创建实例需要先加载并初始化该类 此时main方法所在的类要先加载和初始化。...②一个子类初始化需要先初始化父类 ③一个类初始化就是执行()方法 ()方法由静态类变量显示赋值代码和静态代码块组成。...实例初始化过程: ①实例初始化就是执行()方法 ()方法可能重载有多个,有几个构造器就有几个()方法。...,通过子类调用的一定是子类重写过的方法。

12820

RuntimeException 子类

RuntimeException子类 有时候总是会区分不清哪些异常类是RuntimeException的子类,这里特意去源码里面找来整理一下,方便后续查阅,由于RuntimeException在java.lang...包下,所以这里也只介绍java.lang包下的RuntimeException子类,通常java.lang包下的异常子类也是遇到比较多的 下面逐一介绍每个子类发生的场景 ArithmeticException...例如,一个整数"除以零"时,抛出此类的一个实例。 Thrown when an exceptional arithmetic condition has occurred....ArrayStoreException: Object x[] = new String[3]; x[0] = new Integer(0); ClassCastException 当试图将对象强制转换为不是实例子类时...下滑即可找到我们想要看的java.lang下的RuntimeException的子类,同样的方法也可以去查看Exception的子类,如图 通过阅读源码可以让我们更深入的理解父类子类关系,在工作中多看多用

6410

RuntimeException 子类

RuntimeException子类 有时候总是会区分不清哪些异常类是RuntimeException的子类,这里特意去源码里面找来整理一下,方便后续查阅,由于RuntimeException在java.lang...包下,所以这里也只介绍java.lang包下的RuntimeException子类,通常java.lang包下的异常子类也是遇到比较多的 下面逐一介绍每个子类发生的场景 ArithmeticException...例如,一个整数”除以零”时,抛出此类的一个实例。 Thrown when an exceptional arithmetic condition has occurred....ArrayStoreException: Object x[] = new String[3]; x[0] = new Integer(0); ClassCastException 当试图将对象强制转换为不是实例子类时...下滑即可找到我们想要看的java.lang下的RuntimeException的子类,同样的方法也可以去查看Exception的子类,如图 通过阅读源码可以让我们更深入的理解父类子类关系

60620

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

继承与threading.Thread实现有返回值的子类MyThread,废话不多说,大家直接看代码 import threading class MyThread(threading.Thread):...解决问题 1、python3多线程自定义threading.Thread的子类; 2、多线程并行,获取多线程运行结果 代码实例 import threading from time import sleep...getResult方法可获得func函数return的结果 threading.Thread.join(self) return self.result t1 = MyThread(pp1) #初始化...t1 t2 = MyThread(pp2,2,3) #初始化t1 t1.start() #启动线程t1 t2.start() #启动线程t2 t2.join() #判断线程t2运行结束 exitFlag...t1结束后,主线程才能往下运行 print('线程2返回结果: ',t2.getResult()) print('主线程结束') 以上这篇python继承threading.Thread实现有返回值的子类实例就是小编分享给大家的全部内容了

2.3K20

python之子类继承父类时进行初始化的一些问题

__init__相当于是python类的构造方法,在类进行实例化时被调用,当子类和父类中都存在构造方法时,子类中需要显示调用父类的构造方法 。...加上了私有的属性和方法不能在类外进行访问,同时,子类继承父类的属性和方法时,在子类中也不能够访问父类的私有属性和方法。...print("在子类中使用父类的共有属性:",self.age) #super()代表父类,可以访问父类的公有方法 #当然如若子类没有重写父类的方法,也可以使用self.test...那么假设父类的构造器带有参数,那么在子类中应该如何进行初始化呢?...子类要在初始化的时候显示调用父类的有参构造,并且传入相应的参数,具体代码如下: class Person: def __init__(self,name,age): self.name

57550

Java抽象类及子类实例化顺序和方法调用顺序测试

测试目的 验证抽象类及子类实例化顺序; 验证抽象类是否可以在子类实例化时调用子类实现的抽象方法; 验证java的多态性 实例 抽象类: package com.secbro.test.abstractInit...2016/5/28. */ public class Banana extends Fruit{ protected Banana(){ System.out.println("实例子类...Plant a Banana Eat a Banana 实例子类 Banana 实例化父类 Plant a Orange Eat a Orange 实例子类 Orange 结果分析 查看子类、抽象类的构造方法打印结果可知...,实例子类时先实例化父类。...在抽象类的构造方法中调用了自己未实现的抽象方法,那么对应实例化的子类实现了此方法,在抽象类实例化之后,子类实例化之前,抽象类可以调用子类实现的抽象方法。

76330
领券