随笔分类 - Python高级语法
摘要:@[toc] 1.为什么要掌握元类 在django中编写models的时候遇到了元类的相关操作 并且在mini web框架编写的时候也遇到了相关的问题 意识到深入理解元类非常的重要所以补票重学 学习且引用来自博客:https://www.cnblogs.com/intimacy/p/8119449.
阅读全文
摘要:@[toc] 1.说明 上下文管理器 这里使用with open操作文件,让文件对象实现了自动释放资源。我们也能自定义上下文管理器,通过__enter__()和__exit__()这两个魔术方法来自定义的操作文件 当有上下文使用的场景的时候,如打开一个东西要关闭,像等文件等资源,就可以使用这种方式去
阅读全文
摘要:@[toc] 1.说明 常用的一些魔法方法如下 所谓魔法方法,就是调用的时候 不好好正常调用 2.代码 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号:
阅读全文
摘要:@[toc] 1.说明 使用__dict__魔法方法 可以看到所有的属性,包括公有的,私有的,保护的等等 不能调用的原因就是,解释器把名字属性给重组了 其实是可以访问到的 2.代码 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号:
阅读全文
摘要:@[toc] 1.说明 property属性,返回的是值 不是callable的,也就是不能使用方法来调用 只能传入self,不能传入其他 用处,能返回局部数据,比如当分页的时候 上面的为get方法,还有set方法和delete方法 当del后,再次调用会抛异常 property就相当于javabe
阅读全文
摘要:@[toc] 1.说明 python中属性:类属性,实例属性 方法:类方法,实例方法,静态方法 想修改类属性,只能是类方法,因为只有类方法把cls(类)传入数据里面 静态方法也就是个普通的方法,为了方便而已 实例方法,不能通过类来直接调用,要调用也可以self = 对象名 具体下面 2.代码 关于作
阅读全文
摘要:@[toc] 1.说明 args数据类型为元组 kwargs数据类型为字典 一般传入方法中使用遍历去得到值 这个传入参数的顺序没有特殊的要求 当你自定义的参数传完以后,写了名字的就给kwargs,没有名字的给args 2.代码 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号:
阅读全文
摘要:@[toc] 1.说明 使用类的魔法方法__mro__ 可以查看他的父类调用顺序 还有调用父类的构造方法的时候,使用super调用,里面有C3算法支持,不会重复调用相同的祖先类 2.代码 关于作者 "个人博客网站" "个人GitHub地址" 个人公众号:
阅读全文
摘要:@[toc] 1.说明 在开发程序的过程中,往往使用sys.path去验证下导入的目录,返回的是列表 先后顺序,就是扫描的先后顺序 ,也可以加入搜索路径 import有个特点防止重复导入 import是把包拷贝一份放在内存中,所以当代码改变的时候,程序运行不会变 重新导入也不会变,需要重新导入的使用
阅读全文
摘要:@[toc] 1.说明 __a(私有):只能在类的内部使用,对象使用,但是子类不允许使用,不能导入到其他包 _a(protected):可以在子类使用,可以通过对象访问,不能导入其他包 a_:没有要求,就是自己定义的区别名字而已 2.代码 test.py main.py 关于作者 "个人博客网站"
阅读全文
摘要:@[toc] 1.说明 任何可变数据类型都牵扯到深浅拷贝 但是元组,常数等,不可变数据类型,无论浅拷贝,深拷贝都是指向 不管如何嵌套,一旦牵扯到可变数据类型,都会有深浅区别 特别注意,元组切片为浅拷贝,反正可变数据类型没使用deepcopy一律浅拷贝 浅拷贝: 一个变量名等于另一个东西就一定是指向,
阅读全文
摘要:@[toc] 1.结论 当一个py文件执行多进程的时候,是真的在并发 当一个文件在使用多线程的时候,伪并发,在同一时刻只有一个线程执行,因为GIL Guido都说了,不好除这个 因为GIL为历史原因,在Cpython虚拟机,难以移除 多进程是复制,多线程是共享全局变量 那么为啥编写一个爬虫的时候,多
阅读全文

浙公网安备 33010602011771号