上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 23 下一页
  2019年12月17日
摘要: 领会下面这个示例吧,其实跟java中wait/nofity是一样一样的道理 import threading # 条件变量,用于复杂的线程间同步锁 """ 需求: 男:小姐姐,你好呀! 女:哼,想泡老娘不成? 男:对呀,想泡你 女:滚蛋,门都没有! 男:切,长这么丑, 还这么吊... 女:关你鸟事! 阅读全文
posted @ 2019-12-17 23:23 显示账号 阅读(907) 评论(0) 推荐(0) 编辑
摘要: 别看pyhton有个GIL,但是在多线程编程时与java一样,为了保证数据的案例,还是需要用到锁Lock锁. Lock不是重入锁,在同一个线程中不能多次acquire() RLock才是重入锁 import threading from threading import Lock # 申明一把锁 l 阅读全文
posted @ 2019-12-17 22:05 显示账号 阅读(122) 评论(0) 推荐(0) 编辑
摘要: global interpreter lock 金局解释锁, 使得同一时刻只有一个线程在cpu上执行python的字节码文件,无法将多个线程映射到各个cpu上执行. gil会根据执行的字节码行数或cpu时间片,或io操作,会主动释放gil锁 import threading total = 0 de 阅读全文
posted @ 2019-12-17 21:09 显示账号 阅读(190) 评论(0) 推荐(0) 编辑
  2019年12月16日
摘要: pyhon读取文件很方便,但是,如果文件很大,而且还是一行文件,那就蛋疼了. 不过还好有read(size)方法,这个方法就是每次读取size大小的数据到内存中 下面来个示例 def readlines(f, separator): ''' 读取大文件方法 :param f: 文件句柄 :param 阅读全文
posted @ 2019-12-16 23:05 显示账号 阅读(565) 评论(0) 推荐(0) 编辑
  2019年12月15日
摘要: 1. python函数运行原理 import inspect frame = None def foo(): bar() def bar(): global frame frame = inspect.currentframe() pass # python解释器 python.exe 会用一个叫做 阅读全文
posted @ 2019-12-15 23:21 显示账号 阅读(399) 评论(0) 推荐(0) 编辑
摘要: # 生成器函数 函数里面只要有yield关键字,就是一个生成器函数 # 生成器对象也是实现了迭代器协议了的 def gen_func(): yield 1 yield 2 yield 3 def func(): return 1 # 斐波拉契函数 a1 + a2 = a3 # 0,1,1,2,3,5 阅读全文
posted @ 2019-12-15 22:40 显示账号 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 可迭代对象: 实现了__iter__协议的对象就叫可迭代对象 迭代器 : 继承了Iterator的类或者说实现__iter__和__next__协议的对象就叫着迭代器 二者的关系: 使用迭代器去遍历可迭代对象 (理解起来跟java一样的) 下面是个示例 from collections.abc im 阅读全文
posted @ 2019-12-15 22:05 显示账号 阅读(198) 评论(0) 推荐(0) 编辑
摘要: metaclass : 元类, 就是创建python类对象的类 # 便用type动态创建类 # 1. 使用type创建一个User类对象 无基类,无属性 . () : 表示基类, {}:属性 User = type('User', (), {}) user = User() print(user) 阅读全文
posted @ 2019-12-15 12:35 显示账号 阅读(247) 评论(0) 推荐(0) 编辑
  2019年12月14日
摘要: __new__ : 控制对象的实例化过程 , 在__init__方法之前调用 __init__ : 对象实例化对象进行属性设置 class User: def __new__(cls, *args, **kwargs): """控制对象的创建的过程,在__init__方法之前调用""" print( 阅读全文
posted @ 2019-12-14 23:49 显示账号 阅读(144) 评论(0) 推荐(0) 编辑
摘要: from datetime import date """ __getattr__ : 在查找不到对象的属性时调用 __getattribute__ : 在查找属性之前调用(一般都不要覆写) 所以,访问的属性的调用顺序是: __getattribute__ > 对象属性 > __getattr__ 阅读全文
posted @ 2019-12-14 23:11 显示账号 阅读(121) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 23 下一页