Python学习笔记(五)—第七、八天,面向对象概念

栏目: Python · 发布时间: 6年前

内容简介:Python学习笔记(五)—第七、八天,面向对象概念

这两天学习类、属性、方法、对象等概念,由于原来基础比较薄弱,没接触过面向对象的语言,一遍看下来,彻底懵逼了。

啃了两天,才算是不那么懵了。简单记录下。

Class是一种抽象概念,比如我们定义的Class——Student,是指学生这个概念,而实例(Instance)则是一个个具体的Student,比如,Bart Simpson和Lisa Simpson是两个具体的Student。

所以,面向对象的设计思想是抽象出Class,根据Class创建Instance。 参考廖雪峰的官方网站 Python 3

类和对象主要是封装、继承、多态几个知识点。

类包括属性和方法,这是它与函数不同的地方,函数只有方法。

封装,我的理解是将一些数据和方法隐藏在函数内部了,外部不需要知道为什么,只要实例调用就好了。

就好像我们知道 +,既可以1 + 2,也可以‘a’+‘b’,至于为什么,在它的内部,我们不需要知道。

继承是指,子类继承父类的数据和方法。

比如,我们定义了一个名为Animal的class,它有一个run()de 方法,那么,当我们创建Dog、Cat等子类时,就可以继承Animal的属性和方法,不需要重复创建。

 1 >>> class Animal(object):
 2     def run(self):
 3         print('Animal is running...')
 4 
 5         
 6 >>> class Dog(Animal): #继承类Animal
 7     pass
 8 
 9 >>> class Cat(Animal):
10     pass

在class Dog和Cat中,我都没有创建任何函数,接下来我创建子类的实例,并调用run():

1 >>> dog = Dog()
2 >>> cat = Cat()
3 >>> dog.run()
4 Animal is running...
5 >>> cat.run()
6 Animal is running...

子类Dog和Cat,都可以调用从父类Animal继承的run()方法。都打印出Animal is running...

但是,如果子类中定义与父类同名的方法或属性,则会自动覆盖父类对应的方法或属性。不同名,则可以新增,属于子类。

如上面的例子,Dog肯定不希望仅仅打印出Animal。

 1 >>> class Dog(Animal):
 2     def rund(self):
 3         print('Dog is running...')
 4 
 5 
 6 >>> class Cat(Animal):
 7     def run(self):
 8         print('Cat is running...')
 9 
10 
11 >>> dog = Dog()
12 >>> cat = Cat()
13 >>> dog.run()
14 Animal is running...
15 >>> dog.rund()
16 Dog is running...
17 >>> cat.run()
18 Cat is running...

这里面,Dog类新增了方法,rund(),所以实例dog,既可以调用从父类继承来的方法run(),输出Animal is running,

也可以调用自己新增的方法rund(),输出Dog is running;

而Cat类,因为新增的方法run(),与父类方法重名,所以覆盖了父类对应的方法。所以,cat.run()输出,Cat is running。

继承属性可以使用super函数或者在子类的__init__函数里面调用父类的__init__函数。

实例:

后面添加吧。。。


以上所述就是小编给大家介绍的《Python学习笔记(五)—第七、八天,面向对象概念》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

区块链技术驱动金融

区块链技术驱动金融

阿尔文德·纳拉亚南、约什·贝努、爱德华·费尔顿、安德鲁·米勒、史蒂文·戈德费德 / 林华、王勇 / 中信出版社,中信出版集团 / 2016-8-25 / CNY 79.00

从数字货币及智能合约技术层面,解读了区块链技术在金融领域的运用。“如果你正在寻找一本在技术层面解释比特币是如何运作的,并且你有一定计算机科学和编程的基本知识,这本书应该很适合你。” 《区块链:技术驱动金融》回答了一系列关于比特币如何运用区块链技术运作的问题,并且着重讲述了各种技术功能,以及未来会形成的网络。比特币是如何运作的?它因何而与众不同?你的比特币安全吗?比特币用户如何匿名?区块链如何......一起来看看 《区块链技术驱动金融》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具