
python技巧
文章平均质量分 92
上帝De助手
人生苦短,及时行“乐”!
展开
-
设计模式之python版(五)--工厂方法
工厂方法应用特性:需要生成的对象经常需要增改时,抽离出易变的内容并独立放置在一个类中结构特性:一个工厂类分离成多个子工厂类,分别只做一件事UML:#!/usr/bin/env python #encoding: utf-8 class factory_base: def __init__(self): pass d原创 2012-05-10 13:22:04 · 1390 阅读 · 0 评论 -
InfluxDB安装与简易使用指南
文章目录InfluxDB安装使用指南安装YUM安装RPM安装配置操作database操作插入记录查询记录Python接口database操作插入记录查询记录Python三方库总结原文链接InfluxDB安装使用指南InfluxDB是目前比较主流的时序数据库,而时序数据库则是以时间序列为轴的数据库,与关系型数据库相比它有几个特点:每条记录都必须有时间戳字段(不设置会自动生成,类似关系型数据...原创 2019-08-20 22:47:43 · 3376 阅读 · 1 评论 -
Selenium通过设置代理实现抓取HTTPS请求
起因Selenium本身是不支持HTTP请求抓取的,因为其团队认为这个不是selenium要解决的问题(确实也是)。所以推荐使用一个相关联的项目 -- BrowserMobProxy。具体项目首页见:https://github.com/lightbody/browsermob-proxy尝试因为项目需要,所以就研究了下BrowserMobProxy。它其实是一个java实现的开源代...原创 2018-12-04 19:59:45 · 11035 阅读 · 0 评论 -
Python各种类型装饰器详解说明
装饰器说明Python中的装饰器是一种可以装饰其它对象的工具。 该工具本质上是一个可调用的对象(callable),所以装饰器一般可以由函数、类来实现。 装饰器本身需要接受一个被装饰的对象作为参数,该参数通常为函数、方法、类等对象。 装饰器需要返回一个对象,该对象可以是 经过处理的原参数对象、一个包装且类似原参数的对象;或者返回一个不相干内容(通常不建议使用)相信通过上述一段文字的描述...原创 2018-10-27 19:32:42 · 11777 阅读 · 10 评论 -
Python语法糖系列
语法糖说明语法糖(Syntactic sugar): 计算机语言中特殊的某种语法 这种语法对语言的功能并没有影响 对于程序员有更好的易用性 能够增加程序的可读性简而言之,语法糖就是程序语言中提供[奇技淫巧]的一种手段和方式而已。 通过这类方式编写出来的代码,即好看又好用,好似糖一般的语法。固美其名曰:语法糖一个简单的例子假设:有2个数字,现需要从...原创 2018-10-28 14:51:35 · 42583 阅读 · 8 评论 -
再谈Python多线程--避免GIL对性能的影响
在Python中使用多线程,如果你对GIL本身没有一定的了解;那么很有可能你只是写出了正确的多线程代码,而并没有达到多线程的目的,甚至截然相反的效果。下面介绍了Python中GIL的作用和局限性,并提供了避免GIL影响性能的几个建议。 GIL是CPython中特有的全局解释器锁(其它实现版本因为有自己线程调度机制,所以没有GIL机制)。本质上讲它就是Python进程中的一把超大锁。这把锁在...原创 2017-11-17 17:25:07 · 9631 阅读 · 1 评论 -
python2.X编码问题梳理
首先这些问题只有在python2.X版本出现,因为3.X版本中python环境就只有unicode类型的字符串了,即所有程序中处理的都会自动转换成unicode字符串。那么2.X的python程序开发中如何避免和理清编码问题呢?首先要保持一个良好的统一规则,不然一切都是白扯了,统一都用utf-8是最好的。python中会用到编码的不同地方有:1、python源文件的编码2、python原创 2013-01-15 23:39:29 · 4338 阅读 · 1 评论 -
python进制转换(读取纯二进制文件内容)
binascii 模块:它包含一个把二进制数值转换成十六进制的函数,同样也可以反过来转。 #binary_value是二进制数值不是字符串,也不是int型的1010binascii.b2a_hex(binary_value) ##binary_value 一般读二进制文件可以得到>>'89' python自带的builtin函数:bin(num) 十进制数值 =原创 2012-05-21 18:14:44 · 35629 阅读 · 0 评论 -
socket编程各步骤作用简述之python版
python的标准库里面自带了socket模块,直接可以导入,连接方式和其它编程语言基本也是一样的,因为初学socket编程所以每一步具体起到什么作用还不是很明确,而网上基本都是直接代码,大同小易;只有自己试了几次才知道。来看一下比喻的socket连接图:基本上一个程序对应一个端口,一个线程监听一个socket消息。正常单线程时,有一个请求连接发来,直接就是由唯一的主线程来监听,然后发原创 2012-05-21 15:41:46 · 7203 阅读 · 0 评论 -
socket通信模拟http服务之python版
直接见代码,用python编写一个基于socket的c/S结构程序,然后双方简单模拟http协议通信,也可以直接通过浏览器来访问服务器。服务器端:#!/usr/bin/env python #encoding: utf-8import socket, sys, threading SERVER = '127.0.0.1' #主机IP PORT = 8080 #端口号原创 2012-05-18 18:42:38 · 7073 阅读 · 0 评论 -
python在windows的cmd中打印彩色文字
在cmd中打印出彩色文字,主代码来自网上,一不小心忘了原链接了,抱歉。下面我是修改后的内容。#!/usr/bin/env python #encoding: utf-8import ctypesSTD_INPUT_HANDLE = -10STD_OUTPUT_HANDLE= -11STD_ERROR_HANDLE = -12FOREGROUND_BLACK = 0x0F转载 2012-06-04 13:07:34 · 15661 阅读 · 4 评论 -
设计模式之python版(七)--模板方法模式
模板方法模式:应用特性:重复做相同逻辑的事情,但是具体细节不同的场景结构特性:相同逻辑抽取至父类,具体细节留置子类。可以说是对逻辑的抽象UML:#!/usr/bin/env python #encoding: utf-8 class template: def __init__(self): pass def logic(se原创 2012-05-14 13:24:42 · 2992 阅读 · 0 评论 -
设计模式之python版(六)--原型模式
原型模式:应用特性:需要大量的基于某个基础原型进行微量修改而得到新原型时使用。结构特性:对象的复制机制【浅复制和深复制】UML:#!/usr/bin/env python #encoding: utf-8 from copy import copy, deepcopyclass test_obj: def __init__(self, id):原创 2012-05-14 11:57:25 · 2036 阅读 · 0 评论 -
设计模式之python版(二)--策略模式
策略模式:应用特性:接收任意对象,然后对不同的对象去做相同的一件事情。结构特性:策略模式其实是利用了多态的特性,使用固定的方法,但是把对象作为个体抽离出来了,对象在这里有点象抽离出来的配置文件的意思UML:#!/usr/bin/env python#encoding: utf-8class baseclass: def __init__(self):原创 2012-05-08 23:21:37 · 1564 阅读 · 0 评论 -
设计模式之python版(四)代理模式
代理模式应用特性:需要在通信双方中间需要一些特殊的中间操作时引用,多加一个中间控制层。结构特性:建立一个中间类,创建一个对象,接收一个对象,然后把两者联通起来UML:#!/usr/bin/env python #encoding: utf-8 class sender_base: def __init__(self): pass原创 2012-05-10 13:01:08 · 1831 阅读 · 0 评论 -
设计模式之python版(一)--工厂模式
工厂模式:应用特性:其实工厂模式就是创建对象模式,你想要什么就给你创建什么对象。通常接收一个要求,返回一个要求的对象。结构特性:一个独立的各类对象的生成器。UML:#!/usr/bin/env python#encoding: utf-8class baseclass: def __init__(self): pass原创 2012-05-08 22:45:55 · 1667 阅读 · 0 评论 -
设计模式之python版(三)--装饰模式
装饰模式:应用特点:是动态的给主功能添加一些装饰性的功能。结构特性:就是把各装饰性的功能和主功能分开,然后根据需要选择装饰性的功能来修饰主功能即可。UML:#!/usr/bin/env python #encoding: utf-8 ##被装饰的主类class baseclass: def __init__(self): pass原创 2012-05-09 14:00:26 · 1637 阅读 · 0 评论 -
基于host的http代理--hproxy
说到代理,大多数情况我们都会想到通过浏览器设置的正向代理,以及类似nginx的反向代理;而实际上除此之外还有一种基于host方式实现的代理。本文主要讲述,如何实现一个基于host方式的http代理,以及它与普通代理之间的区别。这种方式的代理主要可以应用于哪些实际的测试场景。与普通代理的区别所谓的普通代理,就是我们日常会用到的那种代理,通常需要客户端本身支持,使用时对客户端进行代理信息配...原创 2019-08-29 22:35:51 · 12762 阅读 · 0 评论