2018年5月8日

8-4 如何使用线程本地数据

摘要: 通常HTTP都是TCP的短连接,但本案例中传输的是视频流,短连接无法实现,可以使用服务器数据推送的方式。也就是在一次HTTP请求当中,一直使用一个TCP连接持续向客户端发送数据。 说明本地数据local的特点 例子一: 例子二: 说明:同一个本地数据的对象L,但在不同线程中,他的x属性的值不同。 > 阅读全文

posted @ 2018-05-08 18:44 石中玉smulngy 阅读(244) 评论(0) 推荐(0)

8-3 如何线程间事件通知

摘要: 一、tar包打包 输出结果: 二、事件通知使用方法: 此时再调用 wait()阻塞时,就不再起作用了,需要先调用e.clear()清除才能再使用wait()阻塞 输出结果: 阅读全文

posted @ 2018-05-08 16:59 石中玉smulngy 阅读(186) 评论(0) 推荐(0)

8-2 如何线程间通信

摘要: IO操作用多线程操作,而CPU密集型操作因为有全局解释器锁GIL,所以只使用一个线程,现在下载多线程,转换一个线程,典型的供销模式关系。下载线程完成后通知转换线程进行转换。 线程间通讯本例中采用队列的方式。 from collections import deque 中的deque是双端循环队列,采 阅读全文

posted @ 2018-05-08 16:55 石中玉smulngy 阅读(165) 评论(0) 推荐(0)

8-1 如何使用多线程

摘要: >>> help(Thread) Help on class Thread in module threading: class Thread(_Verbose) | A class that represents a thread of control. | | This class can be 阅读全文

posted @ 2018-05-08 16:53 石中玉smulngy 阅读(175) 评论(0) 推荐(0)

7-8 如何通过实例方法名字的字符串调用方法

摘要: 三个接口: 方法一: >>> help(getattr) Help on built-in function getattr in module __builtin__: getattr(...) getattr(object, name[, default]) -> value Get a nam 阅读全文

posted @ 2018-05-08 16:47 石中玉smulngy 阅读(254) 评论(0) 推荐(0)

7-7 如何在环状数据结构中管理内存

摘要: 一、获取一个对象的引用数 >>> help(sys.getrefcount) Help on built-in function getrefcount in module sys: getrefcount(...) getrefcount(object) -> integer Return the 阅读全文

posted @ 2018-05-08 15:37 石中玉smulngy 阅读(202) 评论(0) 推荐(0)

7-6 如何使用描述符对实例属性做类型检查

摘要: 一、描述符包含__get__、__set__或__delete__三个方法中的一个就是描述符。类似于7-4中的property类,内部也是实现了这三个方法。 结果输出: 二、使x成为a的属性 输出结果: 三、一个判断属性类型的例子 结果输出: 阅读全文

posted @ 2018-05-08 15:30 石中玉smulngy 阅读(175) 评论(0) 推荐(0)

7-5 如何让类支持比较操作

摘要: __lt__小于、__le__小于等于、__gt__大于、__ge__大于等于、__eq__等于、__ne__不等于 输出结果: True >>> 如果要实现这些可以运算符重载这些方法,如果使用total_ordering可以简化过程,只定义小于和等于,就可以,能自动生成其他的运算符重载 >>> h 阅读全文

posted @ 2018-05-08 15:26 石中玉smulngy 阅读(123) 评论(0) 推荐(0)

7-4 如何创建可管理的对象属性

摘要: >>> help(property) Help on class property in module __builtin__: class property(object) | property(fget=None, fset=None, fdel=None, doc=None) -> prope 阅读全文

posted @ 2018-05-08 15:22 石中玉smulngy 阅读(137) 评论(0) 推荐(0)

7-3 如何让对象支持上下文管理

摘要: Wtih XXX as yy: 这里,yy是enter返回的值 在类里定义__enter__方法 def __enter__(self): .... return self #共4个参数,后3个都是与异常有关的,分别是异常类型,异常值,跟踪的栈 def __exit__(self,exc_type, 阅读全文

posted @ 2018-05-08 15:10 石中玉smulngy 阅读(123) 评论(0) 推荐(0)

7-2 如何为创建大量实例节省内存

摘要: 1、创建一个模块,定义两个类player和player2,执行完后,可以直接导入 创建两个对象p1和p2,其中p1要比p2大 2、查看p1和p2的属性 >>> help(dir) Help on built-in function dir in module __builtin__: dir(... 阅读全文

posted @ 2018-05-08 15:08 石中玉smulngy 阅读(151) 评论(0) 推荐(0)

7-1 如何派生内置不可变类型并修其改实例化行为

摘要: 一、定义一个IntTuple类,继承tuple类这里只是标准的继承未做任何修改,所以IntTuple与tuple一样 结果输出: (1, -1, 'abc', 6, ['x', 'y'], 3) (1, -1, 'abc', 6, ['x', 'y'], 3) 调用__new__得到一个实例,再把这 阅读全文

posted @ 2018-05-08 14:51 石中玉smulngy 阅读(196) 评论(0) 推荐(0)

导航