python高级

越接近计算机底层的语言,运行速度快,人读起来越难。
人读起来越简单,运行速度越慢。

模块:在Python中,模块是搭建程序的一种方式。每一个Python代码文件都是一个模块,并可以引用其他的模块,比如对象和属性。

包:一个包含许多Python代码的文件夹是一个包。一个包可以包含模块和子文件夹。

函数:如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。

面对对象的三大特点:
多态: 可对不同类的对象使用同样的操作。
封装:对外部世界隐藏对象的工作细节。
继承:以普通的类为基础建立专门的类对象

浅拷贝:拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。也就是,把对象复制一遍,但是该对象中引用的其他对象我不复制。

深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用。也就是,把对象复制一遍,并且该对象中引用的其他对象我也复制。

xx:公有变量
xx:魔法方法 不要自己起这样的名字
__xx:私有属性或私有方法 不能直接访问或调用
xx: 影响from xxx import * 导入方法
xx
: 可以把关键字作为变量名 尽量不要这么用

私有不能访问的原因是:python解释器把名字重整了改成 _class__xxx。

== 判断值的
is 判断引用的 数字和字符串最好不用is去判断 会出现意想不到的结果

deepcopy:递归拷贝 逐次拷贝里面的内容 ,直到拷贝最底层为止

copy:只拷贝最外层。里面内容如果有引用不拷贝

针对元组 拷贝是没有什么效果

如果函数有一个关键字是yield 这个函数就是一个生成器

ext(g)
g.next() 这两个方法一样

g.send("xxx") 如果第一次用send启动生成器 请用g.send(None)

set
集合:不能有重复的元素

可迭代对象不一定是迭代器 生成器是是可迭代对象 也是迭代器

生成器一定是迭代器

通过iter()把迭代器对象转换成迭代器

在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包

python3 -m pdb 调试程序

l ------- list 查看代码
n ------- next 走一步
c ------ continue 直接执行代码
b num------- break point 断点
s ------- step 进入函数内部
p -------- print 打印参数
a -------- args 打印全部参数
b -------- 查看断点
clear num ----- 清除断点
q -------quit 退出调试

程序 -------一堆堆冷冰冰的代码
进程 -------把程序运行起来产生一个进程

os.fork创建出的子进程,父进程不等子进程结束

getpid 进程号
getppid 父进程号

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