随笔分类 -  python

python学习和问题总结
9-4 如何实现属性可修改的函数装饰器
摘要:一、实现 测试 输出结果: In test In test In test In test In test In test In test In test In test In test In test In test In test In test WARNING:root:"test":2.56 阅读全文

posted @ 2018-05-10 09:44 石中玉smulngy 阅读(188) 评论(0) 推荐(0)

9-3 如何定义带参数的装饰器
摘要:在python2中没有获取函数签名模块,在python3中from inspect import signature可以获取函数签名 一、介绍使用方法 1、sig.parameters包括参数的字典 2、a.kind 查看参数属于哪种类型,位置参数还是关键字参数 二、创建签名字典 1、sig.bin 阅读全文

posted @ 2018-05-10 09:41 石中玉smulngy 阅读(193) 评论(0) 推荐(0)

9-2 如何为被装饰的函数保存元数据
摘要:在python中一切皆对象,函数也是对象,在使用def或lamda创建函数时,就得到了函数对象。 定义一个简单的函数,再查看一下它有哪些元数据 1、函数的名字 这个名字是函数对象的名字。和引用函数的变量名无关。它是在创建时写入对象的名字的 2、函数的字符串文档 3、函数所属的模块 因为这个函数不是模 阅读全文

posted @ 2018-05-09 16:29 石中玉smulngy 阅读(147) 评论(0) 推荐(0)

9-1 如何使用函数装饰器
摘要:1、[题目1]斐波那契数列,又称黄金分割数列。 指的是这样的一个数列:1,1,2,3,5,8,13,21.。。。。 这个数列从第三项开始,每一项都等于前两项之各。求数列的第n项 这种方法也是C语言常用的递归算法。会进行大量的重复计算。如计算(10)时需要计算(8)和(9),计算(9)时需要计算(7) 阅读全文

posted @ 2018-05-09 16:23 石中玉smulngy 阅读(262) 评论(0) 推荐(0)

8-6如何使用多进程
摘要:一、多进程间的虚拟地址空间是独立的 from multiprocessing import Process 与threading下的Thread使用方法几乎一致 说明:这个测试代码是在pycharm中进行的,在IDLE测试多进程里无法出现现象。 二、进程间通讯 1、队列通讯 输出结果: Tue Ja 阅读全文

posted @ 2018-05-09 16:10 石中玉smulngy 阅读(126) 评论(0) 推荐(0)

8-5如何使用线程池
摘要:Python2 线程池Threadpool模块已经被废弃,只在PyPI上提供下载,以支持仍然在使用的旧项目。如果是新项目,请不要再使用。使用标准库例的multiprocessing模块或者异步处理的asyncio模块。 从Python3.2开始,标准库为我们提供了concurrent.futures 阅读全文

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

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 阅读(184) 评论(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 阅读(174) 评论(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 阅读(136) 评论(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 阅读(122) 评论(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)

6-5 如何读写excel文件
摘要:一、读excel 1、打开一个excel(读模式) 2、打开一个sheet表 3、获取表里的一个表格 >>> help(sheet0.row_values) Help on method row_values in module xlrd.sheet: row_values(self, rowx, 阅读全文

posted @ 2018-04-28 13:22 石中玉smulngy 阅读(640) 评论(0) 推荐(0)

6-4 如何构建xml文档
摘要:Element 是节点元素 ElementTree是由 Element 组成 1、创建一个元素 >>> help(Element.set) Help on method set in module xml.etree.ElementTree: set(self, key, value) unboun 阅读全文

posted @ 2018-04-28 13:11 石中玉smulngy 阅读(338) 评论(0) 推荐(0)

导航