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. 第二课丶pygame

    学号:2017*****1024 姓名:王劲松 我的码云贪吃蛇项目仓库:https://gitee.com/Danieljs/sesnake 分析游戏中的备注和问题:10分钟 游戏名称.分数改动:3分 ...

  2. oracle 审计功能

    Oracle 11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 一.审计功能关闭 1. ...

  3. ip xfrm命令是做什么的?

    答: 设置xfrm.xfrm(transform configuration)是一个IP框架,用来转换数据包的格式,也就是使用算法来加密数据包,该框架用作IPsec协议的一部分 ip xfrm sta ...

  4. Office DCOM 组件交互权限设置

    这里以 WORD 为例: 运行 mmc -32 打开控制台. 点击 文件 -> 添加/删除管理单元 ,在 可用的管理单元 中选择 组件服务 ,然后点击 添加 , 确定 . 展开 组件服务节 点直 ...

  5. nodejs的jekins部署

    第一步 gitlab项目仓库给jekins服务器分配一个账号develop权限用于拉取代码. 分支为master. 第二步 jekins配置打包脚本. npm install --registry=h ...

  6. css复合选择器的权重

    选择器的权重 标签选择器的权重为0001 class选择器的权重为0010 id选择器的权重为0100 属性选择器的权重为0010 伪类选择器的权重为0010 伪元素选择器的权重为0010 包含选择器 ...

  7. testng.xml中groups标签使用

    XML配置如下: <?xml version="1.0" encoding="UTF-8"?> <suite name="suite ...

  8. OpenGL.Tutorial03_Matrices_测试

    1. 2. // ZC: 工程-->右键-->属性--> 配置属性: // ZC: C/C++ -->常规-->附加包含目录,里面添加: // ZC: E:\OpenGL ...

  9. JAVA-类方法与实例方法

    1.实例方法:一个方法如果不加static关键字,那么这个方法是实例方法.意思是他属于类的某个实例,通过这个实例调用它,对类的其他实例不产生影响. 2.类方法:也称静态方法.在方法前加static关键 ...

  10. java第四次上机

    package bbb;public class Person { private String name; private int age; public Person(){ } public Pe ...