面向对象
class:
定义类
_ _init__():
初始化对象 实例方法 _ _init__()是在创建对象后,就立刻被默认调用
_ _del__():
删除一个对象,每次调用减1
_ _str__():
转为字符串格式,需要print输出
_ _new__():
创建对象 静态方法 _ _new__(cls, *args, **kwargs):
_ _mro__:
可以查看子类c的对象搜索方法时的先后顺序 C._ _mro__
_ _slots__():
限制目的,对子类不起作用
_ _name__:
如果放在Modules模块中,表示是模块的名字 如果放在Classs类中,表示类的名字
_ _name__:表示模块,类等的名字;
_ _main__:模块,xxx.py文件本身:
-
被直接执行时,对应的模块名就是_ _main__了
-
可以在
-
if _ _ name__ == “ _ _main__”:
-
中添加你自己想要的,用于测试模块,演示模块用法等代码。
-
-
作为模块,被别的Python程序导入(import)时,模块名就是本身文件名xxx了
_ _XXX__():
魔方方法
str():
将用于将值转换为字符串适合人的阅读形式
repr():
供解释器来阅读 eval()逆转
@classmethod:
类方法 cls
@staticmethod:
静态方法 不需要传递参数
hasattr():
检测某一个属性是否存在,true false
type(name,bases,dict):
name:类名 bases:由父类名称所组成的元祖(继承) dict:包含属性和方法(名称和值) 属性为类属性
type 和 object 的关系:相互依存
types:
为对象添加实例方法 实例对象.实例方法=types.MethodType(实例方法,实例对象)
_ _xxx:
定义私有属性
文件
open(file,mode):
file--->文件名 mode--->访问模式 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
close():
文件的关闭
write():
向文件中写入数据
writerow:
read(num) num---->数值,表示要从文件中读取数据的长度(单位字节),如果不传参数表明读取文件中所有的数据,如果多次执行读操作,那么后面读取的数据是从上一次读完后的位置开始
readline():
每一次读取一行数据,返回字符串格式
readlines():
读取所有数据,返回列表格式
tell():
获取当前读写的位置
seek():
定义位置 seek(offset,whence) offset:偏移量 whence:方向
0:文件的开头位置 1:表示当前的位置 2:表示文件的末尾
rename():
文件重命名 rename(需要修改的文件名,新的文件名)
remove():
文件删除 remove(待删除的文件名) remove()删除首个符合条件的元素 del 根据索引删除 pop()移除列表的一个元素,默认最后一个
mkdir(path):
创建文件夹 path文件名
getcwd():
获取当前的目录 os.getcwd()
listdir():
获取当前目录中的文件列表
rmdir(str):
删除文件夹 str---->需要删除文件夹的名称 删除目录(要求必须是空目录)
StringIO(str):(内存中)
str:写入内容 getvalue()方法用于获得写入后的str f.getvalue()
BytesIO():(内存中)
f = BytesIO() f.write('中文'.encode('utf-8')) (写入的不是str,而是经过UTF-8编码的bytes) print(f.getvalue())
try...except:
捕获异常 把可能出现问题的代码,放在try中 把异常处理的代码放入except中 (元祖方式储存)
as:
获取异常信息 except 错误的类型 as 错误描述
else:
try: 可能出现问题的代码
except: 异常捕获 else: 没有异常:
try...finally:
finally后放入必须执行的操作
自定义异常:
Exception/error(必须继承,父类) raise+需要引发的异常
闭包
内部函数中对外部函数作用域中的变量的引用(非全局变量),称内部函数为闭包
def w1(func): def inner():
验证1 验证2 func() return inner