十、给小白看的第三篇 Python 基础教程
本文是第三篇,一共四篇打下Python基础
@Author:Runsen
@公众号:Python之王
上面两个基本搞定了Python中数据结构,下面花一篇讲讲最重要的类。
7、面向对象编程
万物皆是对象,Python当然支持面向对象编程。类和对象是面向对象编程的两个主要方面,类创建一个新的对象,对象是这个类的实例。
对象可以使用类的变量,属于对象或类的变量被称为域;对象也可以使用属于类的函数,这样的函数称为类的方法;域和方法可以合称为类的属性。
域有两种类型
属于实例的
属于类本身
它们分别被称为实例变量和类变量。
类使用关键字class
创建,类的域和方法被列在一个缩进块中。
类的方法必须有一个额外的第一个参数,但是在调用时不为这个参数赋值,这个特殊变量指对象本身,按照惯例它的名称是self,类似Java中的this。
在类中下面两个特都方法需要注意:
__init__
方法:在类的一个对象被创建时调用该方法;相当于c++中的构造函数,就是当这个类调用了,那么这个init 方法就要执行。
__del__
方法:在类的对象被销毁时调用该方法;相当于c++中的析构函数。在使用del删除一个对象时也就调用del方法,del是最后调用的。
Python中所有的类成员(包括数据成员)都是public的,没有Java的私有类,也就是人人都有调用类,虽然编写变成很简单,
但是资源人人都可以随意分配访问,在项目中确实一个不好的东西。
但是Python 类的却有私有变量和私有方法之说,这个是一个例外,如果使用的数据成员以双下划线为前缀,则为私有变量。
你实例化这个类,访问不了。这是很多人忽略 的
比如:
但是私有属性和方法可以在同一个类中被调用
上面是很多人不知道的,下面,我来声明一个Person类
8、继承
面向对象编程 (OOP),英语全称:Object Oriented Programming,面向对象编程的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
继承,其实这样理解,就是我写了一个爸爸类和儿子类,爸爸有钱,儿子却没钱,于是儿子决定继承爸爸,调用爸爸的钱(爸爸类的变量和方法)。
继承一个类,基本使用下面的五个方法。
8.1 直接调用父类属性方法;
爸爸有钱,儿子却没钱,于是儿子用爸爸的钱
8,2 强制调用父类私有属性方法;
爸爸说,你这个儿子,老是用我的钱,我决定藏私房钱。儿子试试super()
拿你的私房钱,但是这里需要注意super()
强制调用父类私有属性方法,就是重写方法,私有变量是不能用supper继承不了,还不可以访问父类中的私有属性方法的变量,就是儿子是拿不了私房钱的。
8.3 重写父类属性方法;
突然间儿子竟然有钱,决定不用爸爸的钱,用自己的钱,决定重写父类属性方法。
8.4 调用父类的_init_方法
如果爸爸把钱放在__init__
,儿子有没有可能拿到爸爸的钱,都不是私有变量,就不是私房钱,当然可以拿到
我们先看看如果不用super,能不能拿到。
连super不用就像拿钱,太小看你爸爸我了。
8.5 继承父类初始化过程中的参数
有的时候,爸爸需要挣钱和花钱,就是我们初始化过程中的参数,儿子很好奇,决定看看爸爸口袋还要多少钱。
我们这里先写死了earnmoney和spendmoney
儿子发现爸爸钱不够,于是偷偷的拿了点钱过来。
以上基本涵盖了Python类的继承,调用父类的属性和方法基础内容,可以自己动手写些案例,加深理解。
9、输入/输出
程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用input和print。input(xxx)输入xxx,
然后读取用户的输入并返回。
10、文件输入/输出
可以使用file类打开一个文件,使用file的read、readline和write来恰当的读写文件。对文件读写能力取决于打开文件时使用的模式,
常用模式
读模式("r")
写模式("w")
追加模式("a")
文件操作之后需要调用close方法来关闭文件。如果用with open就不用slose了。
还有r+,w+,a+
r:仅仅表示读入
r+:既可以读取还可以写入
w: 仅仅表示写入
w+:既可以读取还可以写入
但r+与w+不同的是,不会把原先存在txt中的东西清空,下面是他们的对比,反正尽量用a+,基本没什么错报出来。
| 描述 | r+ | w+ | a+ |
| -------------------- | -------- | -------- | ------------------------ |
| 当前文件不存在时文件 | 抛出异常 | 创建文件 | 创建文件 |
| 打开后原文件内容 | 保留 | 清空 | 保留 |
| 初始位置 | 0 | 0 | 文件尾 |
| 写入位置 | 标记位置 | 标记位置 | 写入时默认跳至文件尾 |
补充个例子吧:
11、存储器
存储器,大家应该不知道。python提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python对象,之后可以完整的取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和pickle完全一样,只不过它是用c写的,要比pickle速度快(大约快1000倍)。
12、异常
当程序中出现某些异常的状况时,异常就发生了。
python中可以使用try ... except
处理。
‘
>本文已收录 GitHub,传送门~ ,里面更有大厂面试完整考点,欢迎 Star。
<br>
<br>
版权声明: 本文为 InfoQ 作者【刘润森】的原创文章。
原文链接:【http://xie.infoq.cn/article/54258e43223232e8ab77a8416】。未经作者许可,禁止转载。
评论