python高级知识

打开文件
在python中,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式)

文件的读写
写数据使用write()可以完成向文件写入数据

读数据(read) 读单个长度使用read(num)可以从文本中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

读数据(readlines) 读所有行就像read没有参数时一样,Readlines可以按照行的方式把整个文件中的内容一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

文件的定位读写
获取当前读写的位置在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取
定位到某个位置如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()seek(offset, from)有2个参数

文件的重命名、删除
文件重命名
os模块中的rename()可以完成对文件的重命名操作rename(需要修改的文件名, 新的文件名)
删除文件
os模块中的remove()可以完成对文件的删除操作remove(待删除的文件名)

类和对象

人以类聚 物以群分。具有相似内部状态和运动规律的实体的集合(或统称为抽象)。具有相同属性和行为事物的统称
类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这个具体的存在。一个类可以找到多个对象
对象
某一个具体事物的存在 ,在现实世界中可以是看得见摸得着的。
可以是直接使用的

1.三种魔法方法

  1. init
    作用:当一个实例被创造的时候调用它的初始化方法
    方法:
    def 类名:
    def init(self):
    #初始化函数,用来完成一些默认的设定
    pass
    0.2. str
    作用:当被str调用的时候
    方法:
    def 类名:
    def str(self):
    return
    0.3 del方法
    当一个实例被销毁的时候调用的方法
    方法:
    def del(self):
    #当对象没有任何变量指向它的时候,会被调用
    print('')
    2.id
    打印id格式如下:
    id()

保护对象的属性
如果有一个对象,当需要对其进行修改属性时,有2种方法对象名.属性名 = 数据 ---->直接修改对象名.方法名() ---->间接修改为了更好的保存属性安全,即不能随意修改,一般的处理方式为:
将属性定义为私有属性
添加一个可以调用的方法,供调用

del()方法
创建对象后,python解释器默认调用init()方法;
当删除一个对象时,python解释器也会默认调用一个方法,这个方法为del()方法
del 程序结束后自动会调用

new方法
new至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供
new必须要有返回值,返回实例化出来的实例,这点在自己实现new时要特别注意,可以return父类new出来的实例,或者直接是object的new出来的实例
init有一个参数self,就是这个new返回的实例,initnew的基础上可以完成一些其它初始化的动作,init不需要返回值
我们可以将类比作制造商,new方法就是前期的原材料购买环节,init方法就是在有原材料的基础上,加工,初始化商品环节

单例设计模式
目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例
每一次执行 类名() 返回的对象,内存地址是相同的

Python 中的单例
单例 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例
1.定义一个 类属性,初始值是 None,用于记录 单例对象的引用
2.重写 new 方法

  1. 如果 类属性 is None,调用父类方法分配空间,并在类属性中记录结果
  2. 返回 类属性 中记录的 对象引用

异常的传递
try嵌套中
函数嵌套调用中
如果try嵌套,那么如果里面的try没有捕获到这个异常,那么外面的try会接收到这个异常,然后进行处理,如果外边的try依然没有捕获到,那么再进行传递。。。
如果一个异常是在一个函数中产生的,例如函数A—->函数B—->函数C,而异常是在函数C中产生的,那么如果函数C中没有对这个异常进行处理,那么这个异常会传递到函数B中,如果函数B有异常处理那么就会按照函数B的处理方式进行执行;如果函数B也没有异常处理,那么这个异常会继续传递,以此类推。。。如果所有的函数都没有处理,那么此时就会进行异常的默认处理,即通常见到的那样

你可能感兴趣的:(python高级知识)