随笔分类 - Python高级
摘要:参考文档: https://www.jianshu.com/p/b9b3d66aa0be 使用 ThreadPoolExecutor 类, as_completed 是迭代器, 如果有任务执行完成有返回值, 则触发as_completed 的迭代.
阅读全文
摘要:在多继承中,如果一个子类继承了两个平级的父类,而这两个父类有两个相同名字的方法,那么一般先继承谁,调用方法就调用先继承的那个父类的方法.如: 可以看出,先继承了A,所以输出的是AAAAA.那么由此引出了一个问题,python解释器是如何对方法进行查找排序的,答案 __mro__ 方法 ,这个方法基于
阅读全文
摘要:re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 re.search 扫描整个字符串并返回第一个成功的匹配。 替换: re.sub(pattern, repl, string, count=0, flags=0) 参数: patter
阅读全文
摘要:TCP 三次握手: SYN --> SYN+ACK --> ACK 四次挥手: FIN --> ACK (FIN) --> ACK TCP十种状态: LISTEN SYN_SENT SYN_RECV ESTABLISHED FIN_WAIT1 FIN_WAIT2 CLOSE_WAIT LAST_AC
阅读全文
摘要:tcp和udp对比起来.还是tcp相对稳定一些,但是因为有三次挥手和四次握手,以及确认包(ack)的存在,可能在速度上会比udp慢. 用python的socket模块可以建立tcp服务端: 其中 listen() 可以把建立的套接字变成被动监听的状态. accept() 这一步会导致堵塞,等待客户端
阅读全文
摘要:socket.socket() 可以创建一个套接字: 简单的发送和接收信息的socket程序. 另: 用 struct.pack() 打包 ,用 unpack() 解包. 还可以直接广播:
阅读全文
摘要:创建进程的方式中有个 callback ,也就是回调. 看代码: 主进程 一直在重复 print(' 主进程-pid=%d ' %os.getpid()) 这一句话, 当子进程 执行完 test 之后,有个返回值 haha 然后主进程放下手中的工作去执行 test2 ,返回值就是传进去的参数 .这就
阅读全文
摘要:线程之间,全局变量可以共享,但是局部变量依然是不共享的,线程的创建方式: threading.Thread(),还可以定义一个类继承Thread,重写他的run方法,具体和进程的写法一样. 那么,线程之前全局变量共享,如果两个线程同时修改一个全局变量,就会有一些麻烦,所以需要用到互斥锁: Lock(
阅读全文
摘要:在类unix操作系统下,可以用 os.fork() 创建一个新的进程,windows系统不可以: 在执行了 os.fork() 这一句之后,会有两个进程同时向下执行, 返回的 ret 分别是 0(子进程)的 和 大于0(父进程)的 , getpid() 是获取当前进程的pid getppid() 是
阅读全文
摘要:在类 里面,其实并没有方法这个东西,所有的东西都保存在属性里面,所谓的调用方法其实是类里面的一个同名属性指向了一个函数(方法),返回的是函数的引用,再用 函数() 这种方式就可以调用它 在调用实例的方法的时候,实际上给对象传过去的只是一个字符串而已, 比如 t = Test() , 假设 func
阅读全文
摘要:python的垃圾回收机制是以引用计数为主,加上标记-清除,分代收集等辅助方式组成的,如果想打开gc功能,需要 import gc 模块 ,然后 gc.enable() 就打开了这个功能,关闭是 gc.disable() . 查看一个对象的引用计数: sys.getrefcount() 总是会比实际
阅读全文
摘要:类在创建对象时,会调用 __init__ 初始化一些东西 , 然后 如果类中定义了 __call__ 方法,可以直接用 对象() 这种方法调用,所以可以用类来装饰函数: 首先 @Test 就是 test = Test(test) 先创建了Test类的一个对象 这个时候 test 就不是指向函数了,而
阅读全文
摘要:给对象添加实例属性,可以直接这样 t.age = 18 ( 假设 t = Test() ) 给类添加类属性 , 也可以直接这样 Test.age = 18 那给对象添加实例方法,可以在类外面先定义一个函数 然后 用 types.MethodType() 方法 把 函数绑定到对象的一个属性上面: 这个
阅读全文
摘要:一个类中,假如一个私有属性,有两个方法,一个是getNum , 一个是setNum 它,那么可以用 Property 来使这两个方法结合一下,比如这样用 num = property(getNum, setNum) 那么 如果创建一个对象 t = Test() , t.num 这样就相当于调用了 g
阅读全文
摘要:以下是第一次了解的时候写的东西,有的地方理解不正确,虽已改正但是太片面,请直接看下面第二次修改加上的内容. 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能. 装饰器的作用就是为已经存在的对象添加额外的功能。 可以看出,这个程序的运行过程为: 1.执行函
阅读全文

浙公网安备 33010602011771号