Python中类的__init__继承


概念:

 定义父类

In [10]: class Person:
....: def __init__(self,name,age,sex):
....: self.name = name
....: self.age = age
....: self.sex = sex
....: def get_name(self):
....: print('name:',self.name)
....:
In [11]: Bob = Person('Bob',18,'男') In [12]: Bob.get_name()
name: Bob

【1】子类不重写__init__,实例化子类时,会自动调用父类定义的__init__

In [13]: class Person_child(Person):
....: def get_name(self):
....: print('name:',self.name)
....: In [14]: child = Person_child('baby',2,'男') In [15]: child.get_name()
name: baby

【2】另一种的验证方式

class Person:
def __init__(self,name,age):
self.name = 'Bob'
self.age = 18 def get_name(self):
print('name:',self.name) class Student(Person):
def get_name(self):
print('name:',self.name) Kevin = Student('Kevin',12)
print('-------------------------')
print(Kevin.name)
print(Kevin.age)
print('-------------------------') output
-------------------------
Bob
18
-------------------------

【3】但重写了__init__时,实例化子类,就不会调用父类已经定义的__init__

In [17]: class Person_child(Person):
....: def __init__(self,name,age,sex):
....: self.name = name
....: self.age = age
....: self.sex = sex
....: def get_name(self):
....: print('child_name:',self.name)
....: In [18]: K = Person_child('Kevin',16,'男') In [19]: K.get_name()
child_name: Kevin

【4】为了能使用或扩展父类的行为,最好显示调用父类的__init__方法

class Person:
def __init__(self,name,age):
self.name = 'Bob'
self.age = 18 def get_name(self):
print('name:',self.name) class Student(Person):
def __init__(self,name,age,sex):
super(Student,self).__init__(name,age)
self.sex = sex def get_detail(self):
print('详细信息:',self.name,'---',self.age,'---',self.sex) Kevin = Student('Kevin',12,'男')
print('-------------------------')
print(Kevin.name)
print(Kevin.age)
print(Kevin.sex)
print(Kevin.get_detail())
print('-------------------------') # output
-------------------------
Bob
18
男
详细信息: Bob --- 18 --- 男
None
-------------------------

更新....

Python中类的__init__继承的更多相关文章

  1. Python中类的多层继承和多重继承

  2. Python 类中__init__()方法中的形参与如何修改类中属性的值

    一.__init__()方法 如果__init__()方法为 class Cat(): def __init__(self,num) : self.num=num Python中类的__init__( ...

  3. python中类的继承

    python中类的继承 在python中面向对象编程中实现继承,以下面一个实例进行说明. class SchoolMenber(): # __init__类似于c++中的构造函数 # __init__ ...

  4. Python中类的继承代码实例

    Python中类的继承代码实例 这篇文章主要介绍了Python中类的继承代码实例,本文直接给出代码及运行效果,需要的朋友可以参考下 相对于C 的继承编写,Python更简洁,而且效率也是很高的,下面编 ...

  5. 第7.6节 Python中类的继承机制详述

    在本章第一节,介绍了面向对象程序设计的三个特征:封装.继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定, ...

  6. 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解

    第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 一.    引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类 ...

  7. python 中的super()继承,搜索广度为先

    一.python中类的继承 1.1 单继承 在python 中我们可以这样来定义一个类:及继承它的子类 class Father: def __init__(self, mes): #1 父类的ini ...

  8. 【学习笔记】--- 老男孩学Python,day18 面向对象------继承

    继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类, 父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class Fathe ...

  9. python基础之类的继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法

    一.什么是继承 继承是一种创建新的类的方式,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. 派生:子类继承了父类的属性,然后衍生出自己新的属性,如果子类衍生出的新 ...

随机推荐

  1. 优雅的使用Linux

    优雅的使用Linux 系统安装 启动盘制作 通过rufus烧制官网镜像,注意根据自己系统的引导模式选择相应模式,不确定的,可以在windows中通过Win + R 快捷键调出"运行" ...

  2. 【使用指南】ComponentOne Enterprise .NET开发控件集

    为方便广大 .NET开发人员更好的使用 ComponentOne Enterprise .NET开发控件集,葡萄城专门推出了 ComponentOne Enterprise 使用指南,该指南详细地介绍 ...

  3. JavaScript基础数据类型(一)

    动态类型 JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定.这也意味着你可以使用同一个变量保存不同类型的数据: var foo = ...

  4. springboot整合ActiveMQ,配置问题

    1.ActiveMQ的安装和相关配置修改 去官网下载安装包解压至文件夹 双击打开 打开浏览器输入 http://127.0.0.1:8161 到此activeMQ就安装好了 2.springboot工 ...

  5. webpack 4.X 基础编译

    webpack4.x的打包已经不能用webpack 文件a 文件b的方式,而是直接运行webpack --mode development或者webpack --mode production,这样便 ...

  6. Pycharm快捷键设置(鼠标滚动控制字体大小)

    一.pycharm字体放大的设置 File —> setting —> Keymap —>在搜寻框中输入:increase —> Increase Font Size(双击) ...

  7. python内建数据类型有哪些

    整型--int 布尔型--bool 字符串--str 列表--list 元组--tuple 字典--dict

  8. 报错:keep must be either "first", "last" or False

    data_mac_set = data_mac.drop_duplicates(['std_mac']) 此时会报错:keep must be either "first", &q ...

  9. python多版本共存

    根据环境变量的顺序调用python,pip等程序 将python.exe修改为python2.exe(或python3.exe)后可以通过不同的名字调用不同版本的python 注意修改Anaconda ...

  10. wine安装稳定使用falsh播放器

    1安装wine,wine安装使用网上自行查找 2.安装flash播放器.exe 下载附件的falsh播放相关.tar.gz,解压后得到 Flash.ocx (flash10 for windows的插 ...