随笔分类 - python高级知识
摘要:一:什么叫包 理解:包含__init__.py的文件就称为包,包以及包里面的文件,一般情况下,是不会手动执行的,是为了被引用,然后由入口函数统一执行。 test1.py def add1(): print("add1") test2.py test3.py test4.py 和test1函数一样,函
阅读全文
摘要:一:作用 python的错误信息报告 # TODO
阅读全文
摘要:super()方法:调用父类方法,也就是新建一个super类的实例对象 class super(object): """ super() -> same as super(__class__, <first argument>) super(type) -> unbound super object
阅读全文
摘要:一:调用区别 class Demo(object): @staticmethod def static_method(): return "static_method" @classmethod def instance_method(self): return "instance_method"
阅读全文
摘要:一:celery 作用:celery能后执行异步操作,可以去执行耗时的函数,也可以用来做定时调度 例如:发短信,消息推送,音视频处理 普通函数 import time def add(x, y): print("进入函数") time.sleep(5) return x + y if __name_
阅读全文
摘要:一:gevent模块 import gevent def f(n): for i in range(n): print(gevent.getcurrent(), i) # 创建一个普通的greenlet对象,并进行切换 g1 = gevent.spawn(f, 5) g2 = gevent.spaw
阅读全文
摘要:二:迭代器 迭代:是一种动作,访问集合元素的一种方式。 迭代器:是一种对象,可以记住遍历位置的一种对象,迭代器只能往前,知道集合中的所有元素被访问完,才会结束。 那么什么东西才能被迭代呢?也就是可以for in 可迭代对象:list tuple dict str for i in 100: prin
阅读全文
摘要:一:并发的概念 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时执行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。这种方式我们称之为并发(Concurrent)。 二:并行的概念 当系统
阅读全文
摘要:一:什么是线程池 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 二:线程池的原理 线程池创建会设置一个最大容量,就是线程池里面线程的数量,也就是说线程池里面存放固定数量的线程。最优的数量是:2 * cpu的数量个 三:为什么要使用线程池 假设有10000
阅读全文
摘要:1. 获取当前文件的路径 test.py os.path.abspath(path) # 返回当前文件运行的绝对路径 print("程序的绝对路径是",os.path.abspath(__file__)) # __file__就是当这个文件的绝对路径, 结果:程序的绝对路径是 F:\python高级
阅读全文
摘要:# 1. 测试代码的运行时间 import time def outter(func): def inner(*args,**kwargs): s = time.time() func() e = time.time() return e - s return inner @outter def d
阅读全文
摘要:恢复内容开始 垃圾回收机制 1.计数引用机制 就是一个变量、数据结构、对象当没有人引用时,python的会启用垃圾回收机制,将其从内存中删除。 怎么看引用的次数呢?sys模块提供的sys.getrefcount(要查的对象)返回引用次数 import sys a = 1 b = 1 print("删
阅读全文
摘要:1.闭包 简单理解:闭包就是多层函数的嵌套,外层函数的返回值是内层函数的引用。 def out_func(n): num = 100 def in_fucn(*args,**kwargs): # nonlocal num if n % 2 == 0: # 里面没有修改num的值,直接使用可以,如果变
阅读全文
摘要:一:代理池维护的模块 1. 抓取模块Crawl,负责从代理网站上抓取代理 抓取模块 2. 获取代理Getter,负责获取抓取模块返回的值,并判断是否超过存储模块的最大容量。 获取模块 3.存储模块Redis,负责将抓取的每一条代理存放至有序集合中。 存储模块 4.测试模块Tester,负责异步测试每
阅读全文
摘要:# TODO selenium已经被检测出来 import random import re import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.we
阅读全文
摘要:一. urllib库中将字典转化为url的查询参数 二.请求异常的处理,以及内部的判断逻辑 1.返回的json数据为空:原因是requests的请求对象没有加请求头和cookies import requests from urllib.parse import urlencode def get_
阅读全文