seek( )
如果在操作文件的过程,需要定位到其他位置进行操作,用seek( )
seek(offset,form)有2个参数,offset,偏移量单位字节,负数是往回偏移,正数是往前偏移,form位置:0表示文件开头,1表示当前位置,2表示文件末尾
tell( )
文件定位,指的是当前文件指针读取到的位置,光标位置。在读写文件的过程中,如果想要知道当前的位置,可以使用tell( )来获取
1.读文件
readlines( )按行读取,一次性读取所有内容,返回一个列表,每一行内容作
为一个元素。
格式:print(文件名.read)
打开文件:
open(文件,文件打开方式)
ctrl+/ 注释快捷键 等于#
特殊注释:
#!/usr/bin/python3 linux
# --coding=utf-8 -- python2 only
在定义了slots变量之后,类的实例已经不能随意创建不在_slots_定义
异常/导致的错误
1.AssertionError
当assert语句失败时引发。
2.AttributeError
当属性分配或引用失败时引发。
3.PointerEOFError
当input(()函数达到文件结束条件时引发。
4.FloatingPointError
当浮点运算失败时引发。
5.GeneratorExit
调用生成器的close(()方法时引发。
6.ImportError
找不到导入的模块时引发。
7.AATndexFrror
当序列的索引超出范围时引发。
8.KeyError
在字典中找不到键时引发。
9.KeyboardInterrupt
当用户按下中断键(ctrl+c或delete)时引
MemoryError 当操作耗尽内存时引发。
NameError
10.在局部或全局范围内找不到变量时引发。
11.NotImplementedError
由抽象方法提出。
12.osError
当系统操作导致系统相关错误时引发。
13.OverflowError
当算术运算的结果太大而无法表示时引发。
14.ReferenceError
使用弱引用代理访问垃圾收集的引用时引发。
15.RuntimeError
当错误不属于任何其他类别时引发。
16.StopIteration
函数引发,以指示迭代器不再返回任何项。
17.SyntaxError
遇到语法错误时由解析器引发。
18.IndentationError
当缩进不正确时引发。
19.TabError
当缩进由不一致的制表符和空格组成时引发。
20.SystemError
当解释器检测到内部错误时引发。
21.SystemExit
由sys.exit(()函数引发。
22.TypeError
将函数或操作应用于类型不正确的对象时引发。
23.UnboundLocalError
当在雨数或方法中引用局部变量,但没有将值绑定到该变量时引发。
24.UnicodeError
当发生与unicode相关的编码或解码错误时引发。
25.UnicodeEncodeError
当编码过程中发生与unicode相关的错误时引发。
26.UnicodeDecodeError
当解码过程中出现与unicode相关的错误时引发。
27.UnicodeTranslateError
翻译过程中发生与unicode相关的错误时引发。
28.ValueError 当函数得到类型正确但值不正确的参数时引发。
29.ZeroDivisionError
当除法或棉评篇的第com295售数象零时引发。
28.Exception 可以捕获掉所有的异常
try:
可能会报错的代码块
except:
报错之后执行的代码块
eles:
没有报错的代码块
finally:
不管有没有出错都执行的代码块
__new__和单例对象
私有化属性的特性:
1.私有化方法一般是类内部调用,子类不能继承,外部不能调用
单下划线,双下划线,头尾双下划线说明:
1._xxx前面家一个下划线,以单下划线开头的表示的是protected类型的变量,即保护类型,保护类型只能允许起本身与子类进行访问,不能使form xxx import * 的方式导入
2,_xxx_前后两个下划线,魔法方法,一般是Python自有,开发者不需要创建者类型的方法
3.xxx_后面单下划线,避免属性名与Python关键字冲突。
使用私有属性的场景
1.把特定的一个属性隐藏起来,不想让类的外部进行直接调用。
2.想要保护这个属性,不想让属性的值随意的改变
3.保护这个属性,不想让派生类(子类)去继承
1.类对象所拥有的方法,需要@startimcemethod 来表示静态方法
2.静态方法不需要参数。
3.静态方法主要用来存放逻辑性的代码,本身和类以及实例对象没有交互,也就是说,在静态方法中,不会涉及到类中方法和属性的操作。
1.类方法的概念:
类对象所拥有的方法,需要用装饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数,类方法可以通过类对象,实例对象调用
1.多态:顾名思义就是多种形态状态,就是同一种行为
2.对于不同的子类(对象)有不同的行为表现
3.要想实现多态,必须有两个前提需要遵守:
1.继承:多态必须发生在父类和子类之间
2.重写:子类重写父类的方法
4.多态的好处:
1.多态可以增加程序的灵活性
2.多态可以增加程序的扩展性
1.类的传递过程中,我们把父类又称为基类,子类又称为派生类,父类的属性和方法可以一级一级的传递到子类
2.重写:就是子类中,有一个与父类名称相同的方法,在子类中的方法会覆盖父类。
1.在Python中,展现面向对象的三大特征:
封装,继承,多态
2.封装:指的是吧内容封装到某个地方,便于后面的使用
他需要:把内容封装到某个地方
从另外一个地方去调用被封装的内容
3.对于封装来说,其实就是使用初始化结构方法将内容封装到对象中,然后通过对象直接或者self来获取被封装的内容
4.继承:和相识生活当中的继承是一样的:也就是,子可以继承付的内容(属性和行为)
5.所以对于面向对象的继承来说,其实就是江多个类功有的方法提取对父类中
6.子类仅需继承父类而不必一一去实现