越接近计算机底层的语言,运行速度快,人读起来越难。
人读起来越简单,运行速度越慢。
模块:在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 父进程号
网友评论