摘要:
全局解释器锁GIL(global interpreter lock) GIL是由CPython解释器所引入的锁机制。 GIL不会阻止进程在不同的处理器上执行,但同一时刻它只允许唯一的线程出现在解释器中。 GIL不能保证线程安全,在修改某共享变量的过程中可能被中断,并被其他线程先修改,当前线程再次运行 阅读全文
摘要:
原文: https://blog.csdn.net/qq_26235879/article/details/113090603 https://blog.csdn.net/weixin_33902301/article/details/118046434 from lxml import etree 阅读全文
摘要:
测试代码结构: 演示案例并没有进行网页爬取,主要目的是演示重复import的问题。 spider目录下是各个业务spider,把任务提交到crawler。 crawler中有个任务队列汇集各个业务spider提交的任务,然后在独立的线程中对任务进行实际的爬取动作。 main启动crawler及各个业 阅读全文
摘要:
第4章 类与面向对象 4.1 对象比较:is 与 == is比较的是两个变量是否指向同一个对象,表示相同。 ==比较的是两个变量所指向的对象是否具有相同的值(内容相同),表示相等。 a = [1, 2, 3] b = a c = [1, 2, 3] d = [a] e = [b] f = [c] p 阅读全文
摘要:
第3章 高效的函数 3.1 函数是Python的头等对象 Python中一切皆对象,函数也不例外。函数可以分配给变量或存储在数据结构中,还可以传递给其他函数或作为其他函数的返回值。 函数可以嵌套,并且可以捕获并携带父函数的一些状态。具有这种行为的函数称作闭包。 # 工厂函数 def make_add 阅读全文
摘要:
原文:https://blog.csdn.net/i_chaoren/article/details/77922939 阅读全文
摘要:
第2章 Python整洁之道 2.1 用断言加一层保险 断言用于程序内部自检,如声明一些代码中不可能出现的条件。如果触发了某个条件,即意味着程序中存在相应的bug。 Python的断言语句是一种调试辅助功能,不是用来处理运行时错误的机制。 不要使用断言来验证数据,断言是可以通过命令行参数(-O和-O 阅读全文
摘要:
import hashlib md5 = hashlib.md5() md5.update('明文1'.encode('utf-8')) md5.update('明文2'.encode('utf-8')) sign = md5.hexdigest() print(sign) 阅读全文
摘要:
import random import string # 随机整数: print(random.randint(1, 50)) # 随机选取0到100间的偶数: print(random.randrange(0, 101, 2)) # 随机浮点数: print(random.random()) # 阅读全文
摘要:
首次运行pyppeteer的时候会自动下载chromium,但是下载失败了,从网上收集到了手动安装chromium的方法。 原文:https://blog.csdn.net/qq_41201398/article/details/105107479 文章提供了文件下载地址:https://npm.t 阅读全文