Python基础总结之初步认识---class类的继承(下)。第十五天开始(新手可相互督促

年薪百万的步伐慢了两天hhhh严格意义是三天。最近买了新的玩具,在家玩玩玩!~~~~

今天开始正式认识类的继承。类的继承是怎么继承呢?看下代码:

1 class Animal(object):              #父类
2     def __init__(self,name):       #构造函数的参数
3         self.name = name           #实例属性
4
5 class Dog(Animal):                        #子类(父类)  表明谁继承了谁的所有属性和方法    pass

在上面的代码中,父类的名字是:Animal   子类的名字是:Dog    我们不难发现,这行代码就是在说明,Dog这个子类将要继承Animal父类的所有类属性以及实例属性和方法。

那么问题来了,怎么表示要继承父类的实例属性呢?

1  Animal.__init__(self,name)         #前面是父类名字,然后点,然后就是构造函数的部分,记住没有def和冒号了。

记住哦,要写在子类的构造函数的代码块中,因为继承的是父类的构造函数中的实例属性。要分清楚实例属性和类属性是两码事儿

看下笔记中的完整代码:

 1 class Animal(object):              #父类
 2     def __init__(self,name):       #构造函数的参数
 3         self.name = name           #实例属性
 4
 5 class Dog(Animal):                        #子类(父类)  表明谁继承了谁的所有类属性和方法还有实例属性
 6     def __init__(self,name,color,age):    #子类构造函数的参数
 7         Animal.__init__(self,name)        #继承父类Animal中的实例属性name,
 8         self.color = color
 9         self.age = age
10
11     def info(self):
12        return ‘它是一只{0},它的毛发是{1},今年{2}岁了‘.format(self.name,self.color.self.age)    #返回结果给调用方   #如果是print输出结果,那么函数会默认返回None值
13
14 dog = Dog(‘小狗‘,‘黑色‘,‘5‘)   #实例化对象,赋值
15 print(dog.info())               #对象调用Dog中的info()方法

相信如果你看了我所有的文字描述,应该能理解是怎么回事儿了。

那么子类继承父类的所有类属性和实例属性以及方法后,是必要要全部都用上吗?当然不是,继承的目的是(类的继承可以看成对类的属性和方法的重用,能够大大的减少代码量-----来自梁雪峰老师的笔记哦)所以说继承是为了方便我们用父类的功能代码,这样我们可以少些一部分代码,从而就是可以选择行的使用我们需要的部分啦

我们看下代码:

 1 ‘‘‘实例属性的继承----》子类根据需要,不继承父类的实例属性。怎么不继承父类的实例属性呢?‘‘‘
 2
 3 class Animal(object):              #父类
 4     def __init__(self,name):       #构造函数的参数
 5         self.name = name           #实例属性
 6
 7 class Dog(Animal):                        #子类(父类)  表明谁继承了谁的所有属性和方法
 8     def __init__(self,color,age):    #子类构造函数的参数
 9         self.color = color
10         self.age = age
11
12     def info(self):
13         return ‘它的毛发是{0},今年{1}岁了‘.format(self.color,self.age)    #返回结果给调用方   #如果是print输出结果,那么函数会默认返回None值
14
15 dog = Dog(‘黑色‘,5)   #实例化对象,赋值
16 print(dog.info())               #对象调用Dog中的info()方法

根据这个代码和上个案例的代码对比发现,虽然子类都继承了父类。但是第二个完整的代码案例中只是表明了我要继承的父类对象是谁,并没有用父类中的任何属性或者方法哦。代码依然是可以执行的,我们看下结果:

这两个小的案例笔记,消化一下,明天开始继续新的学习笔记~~~~20万的梦想,晚安

原文地址:https://www.cnblogs.com/woshidaliua/p/11324244.html

时间: 2024-10-31 13:20:19

Python基础总结之初步认识---class类的继承(下)。第十五天开始(新手可相互督促的相关文章

【JAVA零基础入门系列】Day13 Java类的继承与多态

继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟方法,被继承的类被称为父类或者基类,继承的类称为子类或者导出类,在子类中可以调用父类的方法和变量.在java中,只允许单继承,也就是说 一个类最多只能显示地继承于一个父类.但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类.这就相当于一个人不能有多个父亲一样(滑稽,老王表示不服). 话不多

python基础之面向对象编程介绍、类和对象

面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux内核.git.apache服务器等 优点:极大的降低了程序的设计复杂度 缺点:可扩展性差,改动一个地方很可能要改多个地方,牵一发而动全身 面向对象编程:不是编程的全部,只是用来解决软件可扩展性的 核心是对象(上帝式思维),对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.面向对象就是把计算

python基础学习日志day6-类的经典类vs新式类

经典类VS新式类区别 1)写法新式类class Person(object):#new style 经典类class Persion: #classical style 2)调用父类 新式写法用super 经典类直接写父类类名 3)多继承时继承顺序python3使用的是广度查询,所以两个都一样. 经典类python2是深度查询.所以经典类python2多继承是有BUG class D(B,C) D-->B-->A--C # -*- coding:utf-8 -*- __author__ = '

python基础篇【第八篇】面向对象(下)

一. 面向对象特性之多态: 上一篇已经介绍了面向对象的三大特性的前两种(封装.继承),下面来说说第三种多态,在python中用不上,但在其他语言中很重要. 多态的意思就是多种类型.多种形态,比如字符类型,数字,字典,列表等.在python中定义类或函数时不需要,指定是那种数据类型全都支持,但是在java.c#等其他语言中需要指定如下实例: def func(A arg) print(arg) arg :参数必须是A 类型,或A类型的子类 二.类成员: 类成员分为三大类:字段.方法.属性 1.字段

Python基础总结之第八天开始【while循环以及for循环,循环嵌套等循环相关的知识点】(新手可相互督促)

ennnnn,年薪20万的梦想是不是又进了一步: 循环,什么是循环,循环就是电池有电,手机屏幕可以循环一整天的使用:循环就是地球不毁灭,太阳日复一日的出现...... 不接受反驳,谢谢!~ 只要条件满足,就不断循环,条件不满足,退出循环... while 循环语法结构:(什么是条件判断?请看随笔目录,if条件判断相关笔记) 1 while 条件表达式: #条件成立,执行下面的循环体代码2 循环体 我们开始一个简单的例子:(假若条件一直成立,那么会一直循环,就是所谓的,根本停不下来的,死循环) 1

Python基础总结之第九天开始【python之OS模块对目录的操作、以及操作文件】(新手可相互督促)

年薪20万的梦想...         python对文件.目录能做什么?或者说我们需要python替我们做什么?最经常的操作就是对文件的:打开.关闭.读取.写入.修改.保存等等对目录的操作,无非就是:创建目录.删除目录.更改目录名字等等.我们先认识一下OS模块,os模块以及子模块path中包含了获取系统信息.以及对系统进行设置的函数.提供了Python系统和操作系统进行交互的一个接口.我们怎么使用os模块中的函数呢?看下代码: 1 import os #导入os模块 我们输入这样一行代码,就代

Python基础总结之异常、调试代码第十二天开始(新手可相互督促)

年薪20万的梦想,加油! 我们在写代码的时候,控制台经常会报错,因为某种错误,导致我们的程序停止,且不再运行下面的代码. 我们看一个错误的代码示例: def add_1(): #没有参数 print('我出错了') #不会被执行 def add_2(): #函数二调用函数一 print('第二个函数调用函数一,并给他一个参数') add_1(4) #函数一没有参数,所以有会报异常,并终止,不会执行函数一里面的代码 def add_3(): #函数三调用函数二 add_2() d = add_3(

HTML学习笔记 cs动画基础(分列效果可用于做瀑布流) 第十五节 (原创) 参考使用表

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>动画.分列.过度</title> <link rel="stylesheet" href="tzy.css" type="text/css"> </head> <bod

Python基础 —— 目录

Python基础 Python基础 -- 基本数据类型 Python基础 -- 基本数据类型的方法总结 Python基础 -- 比较运算符 + 逻辑运算符 Python基础 -- 异常处理 Python基础 -- 常用模块 Python基础 -- 模块和包 Python基础 -- PIL模块 Python基础 -- 装饰器函数 Python基础 -- 内置函数 Python基础 -- range()/xrange() 面向对象 -- 特殊且重要的双下方法 面向对象 -- 类的成员.成员修饰符.特