- 博客(147)
- 资源 (3)
- 收藏
- 关注
翻译 python 下划线_、__和__xx__的区别
本文为译文,版权属于原作者,在此翻译为中文分享给大家。英文原文地址:Difference between _, __ and __xx__ in Python"_"单下划线Python中不存在真正的私有方法。为了实现类似于c++中私有方法,可以在类的方法或属性前加一个“_”单下划线,意味着该方法或属性不应该去调用,它并不属于API。在使用property时,经常出现这个问题:...
2019-05-07 13:51:45
352
原创 python logging日志模块以及多进程日志
https://www.jianshu.com/p/d615bf01e37bhttps://blog.youkuaiyun.com/yypsober/article/details/51800120ConcurrentLogHandler多进程安全写按大小分割https://www.cnblogs.com/restran/p/4743840.htmlhttps://pypi.org/pr...
2019-01-14 00:59:06
1806
原创 python 缓存装饰器
1、使用python内存进行缓存autocache.py #!/usr/bin/env python#coding=utf-8 '''装饰器版的python自动缓存系统''' import timeimport hashlibimport picklefrom functools import wraps _cache = {} def _is_obsolete(...
2018-12-25 17:16:59
1047
转载 使用python-cassandra遇到的一个问题
https://blog.youkuaiyun.com/github_35817521/article/details/53621742
2018-12-24 17:32:43
231
原创 python-map的用法
map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。1、当seq只有一个时,将函数func作用于这个seq的每个元素上,并得到一个新的seq。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]如果希望把list的每个元素都作...
2018-12-18 00:12:49
273
原创 python高性能编程方法
毫无疑问Python程序没有编译型语言高效快速. 甚至Python拥护者们会告诉你Python不适合这些领域. 然而,YouTube已用Python服务于每小时4千万视频的请求. 你所要做的就是编写高效的代码和需要时使用外部实现(C/C++)代码. 这里有一些建议,可以帮助你成为一个更好的Python开发者:使用内建函数: 你可以用Python写出高效的代码,但很难击败内建函数. 经查证. 他...
2018-12-18 00:06:51
681
原创 Nginx+upstream针对后端服务器容错
熟练掌握Nginx负载均衡的使用对运维人员来说是极其重要的!下面针对Nignx负载均衡upstream容错机制的使用做一梳理性说明:一、nginx的upstream容错1)nginx 判断节点失效状态Nginx默认判断失败节点状态以connect refuse和time out状态为准,不以HTTP错误状态进行判断失败,因为HTTP只要能返回状态说明该节点还可以正常连接,所以nginx判...
2018-12-11 21:19:01
1029
原创 subprocess的用法
从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。subprocess意在替代其他几个老的模块或者函数,比如:os.system os.spawn* os.popen* popen2.* commands.*一、subprocess.Popensubprocess模块定义了一个类: Popenc...
2018-12-09 18:34:22
17831
2
原创 pycharm 使用UML
1、什么是UML UML类图能够快速检查代码结构。 2、主题 UML类图在Pycharm中的用法。 3、准备工作 (1)Pycharm版本为2.7或更高 (2)安装Python解释器 (3)UML插件以及UML类图插件安装并能正常使用 4、准备一个例子 创建一个Animals模块以及 Mammal.py文件(Alt+Insert→Python ...
2018-08-16 17:08:45
4850
原创 linux安装python2.7.14
centos 7 安装最新的Python 2.7.14 1. 准备工作 sudo yum groupinstall "Development tools" sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-dev 2 ....
2018-08-15 15:02:18
1409
原创 pdb调试
遇到大型python项目,如何定位问题和监控程序的运行状态是一个程序员必须掌握的技能,今天小编为你带来python程序的单步调试方法,方便易用,简单易记!一、代码中使用pdb首先你需要在所调试程序的开头中:import pdb 并在你的代码行设置断点:pdb.set_trace()def get_input(Data, SuiteID, CaseID, caseinfolist):...
2018-08-13 17:21:27
1874
原创 python中安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))
安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError解决办法:1.访问外网受限pip install selectivesearch -i http://pypi.douban....
2018-08-09 12:47:24
3573
原创 RabbitMQ原理
MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列中的消息。RabbitMQ是MQ产品的典型代表,是一款基于AMQP协议可复用的企业消息系统。业务上,可以实现服务提供者和消费者之间的数据解耦,提供高可用性的消息传输机制,在实际生产中应用相当广泛。本文...
2018-07-07 17:49:01
5901
原创 多线程性能及效率问题
一、[多线程概要] 随着计算机技术的发展,编程模型也越来越复杂多样化。但多线程编程模型是目前计算机系统架构的最终模型。随着CPU主频的不断攀升,X86架构的硬件已经成为瓶,在这种架构的CPU主频最高为4G。事实上目前3.6G主频的CPU已经接近了顶峰。 如果不能从根本上更新当前CPU的架构(在很长一段时间内还不太可能),那么继续提高CPU性能的方法就是超线程CPU模式。那么,作业系统、应用程序...
2018-06-10 15:01:36
11582
原创 Python多线程和多进程谁更快?
python多进程和多线程谁更快python3.6threading和multiprocessing四核+三星250G-850-SSD自从用多进程和多线程进行编程,一致没搞懂到底谁更快。网上很多都说python多进程更快,因为GIL(全局解释器锁)。但是我在写代码的时候,测试时间却是多线程更快,所以这到底是怎么回事?最近再做分词工作,原来的代码速度太慢,想提速,所以来探求一下有效方法(文末有代码和...
2018-06-10 14:06:41
796
原创 Python之List中remove,pop,del区别分析
代码块remove#remove删除首个符合条件的元素,并不删除特定的索引。**n =[1,2,2,3,4,5]n.remove(3)print (n)**#输出 [1, 2, 2, 4, 5]123456pop#pop按照索引删除字符,返回值可以付给其他的变量,返回的是你弹出的那个数值。n =[1,2,2,3,4,5]a=n.pop(4)print (a)print (n)...
2018-06-08 16:30:15
6343
2
原创 python多线程和多进程
1 概念梳理:1.1 线程1.1.1 什么是线程线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。一个线程是一个execution context(执行上下文),即一个cpu执行时所需要的一串指令。1.1.2 线程的工作方式假设你正在读一本书,没有读完,你想休息一下...
2018-06-05 17:25:55
353
转载 tornado
回想Django的部署方式以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有一个对应的线程来用web应用(如Django)进行处理。考虑两类应用场景用户量大,高并发如秒杀抢购、双十一某宝购物、春节抢火车票大量的HTTP持久连接使用同一个TCP连接来发送和接收多个HTTP请求/应答,而...
2018-06-04 20:21:16
1185
原创 Redis 哨兵模式实现主从故障互切换
Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。虽然 Redis Sentinel 释出为一个单独的可执行文...
2018-06-04 01:49:36
1264
原创 Redis-介绍
Nosql介绍nosql是key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统的数据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等,这类数据库主要有一下特点:非关系型、分布式的、开源的、水平可扩展的Nosql特点1.对数据高并发读写2.对海量数据的高效率存储和访问3.对数据的高可扩展性(无表结构,分布式搭建)Redis介绍redis是一个Key-Value存储系...
2018-06-02 22:22:15
680
转载 消息队列使用的四种场景介绍
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注...
2018-05-25 15:00:16
334
原创 Python yield 使用浅析
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机程序输出斐波那契數列的前 N 个数是一个非常简单的...
2018-05-07 23:55:41
128
转载 完全理解 Python 迭代对象、迭代器、生成器
在了解Python的数据结构时,容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚。容器(container)容器是一种把多个元素组织在一起的数据结构,容器中...
2018-05-07 23:22:38
140
转载 Python中赋值、浅拷贝与深拷贝
python中关于对象复制有三种类型的使用方式,赋值、浅拷贝与深拷贝。他们既有区别又有联系,刚好最近碰到这一类的问题,研究下。一、赋值 在python中,对象的赋值就是简单的对象引用,这点和C++不同。如下: list_a = [1,2,3,"hello",["python","C++"]]list_b = list_a 这种情况下,list_b和list...
2018-05-04 14:48:42
165
原创 python 之 多继承的顺序
python 支持多继承,但对与经典类和新式类来说,多继承查找的顺序是不一样的。 经典类:新式类 class P1: def foo(self): print 'p1-foo' class P2 : def foo(self): print 'p2-foo' def bar(self): p...
2018-05-02 23:12:53
3489
原创 广度优先搜索和深度优先搜索
前言这几天复习图论算法,觉得BFS和DFS挺重要的,而且应用比较多,故记录一下。广度优先搜索有一个有向图如图a 图a 广度优先搜索的策略是:从起始点开始遍历其邻接的节点,由此向外不断扩散。1.假设我们以顶点0为原点进行搜索,首先确定邻接0的顶点集合S0 = {1,2}。2.然后确定顶点1的集合S...
2018-05-02 23:12:00
1006
原创 Python面向对象静态方法,类方法,属性方法
Python面向对象静态方法,类方法,属性方法属性: 公有属性 (属于类,每个类一份) 普通属性 (属于对象,每个对象一份) 私有属性 (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法:(按作用) 构造方法 析构函数方法:(按类型) 普通方法 私有方法(方法前面加两个下划线) 静态方法 类方法 属性方法静态方法@staticmethod静态方法,通过类直接...
2018-04-26 01:07:28
330
原创 Python装饰器的来龙去脉
以前你有没有这样一段经历:很久之前你写过一个函数,现在你突然有了个想法就是你想看看,以前那个函数在你数据集上的运行时间是多少,这时候你可以修改之前代码为它加上计时的功能,但是这样的话是不是还要大体读读你之前的这个的代码,稍微搞清楚一点它的逻辑,才敢给它添加新的东西。这样是不是很繁琐,要是你之前写的代码足够乱足够长,再去读它是不是很抓狂...。实际工作中,我们常常会遇到这样的场景,可能你的需求还不只...
2018-04-26 00:14:11
193
转载 Python爬虫利器之selenium有无界面
selenium通过模拟浏览器完成一些操作,但是在一些服务器上是没有图形界面的,自然使用selenium操作需要在无界面操作。有界面操纵from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://baidu.com")driver.quit()无界面操纵#python3from selenium i...
2018-03-28 17:07:59
421
转载 Python中re的match、search、findall、finditer区别
这四个方法是从某个字符串中寻找特定子串或判断某个字符串是否符合某个模式的常用方法。1、match[python] view plain copyre.match(pattern, string[, flags]) 从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若要完全匹配,pattern要以$结尾。2、search[python...
2018-03-28 15:09:46
901
原创 Phantomjs性能优化
写过爬虫的朋友应该都用过一个无头浏览器–phantomjs,使用它的原因很简单明了:能够高度模拟浏览器访问(对抗反爬虫),无头浏览(可以节省性能)。Phantomjs应用最广泛的应该还是用来执行js代码,比如写一个js脚本,利用phantomjs去执行,可以写一个页面截图、网页性能测试等等功能的。 phantomjs也是爬虫界的一大神器,我最初使用它就是用来爬取一些动态加载的网页,效果俱佳。当然...
2018-03-28 11:32:12
4296
转载 HttpClient 4.3连接池参数配置及源码解读
目前所在公司使用HttpClient 4.3.3版本发送Rest请求,调用接口。最近出现了调用查询接口服务慢的生产问题,在排查整个调用链可能存在的问题时(从客户端发起Http请求->ESB->服务端处理请求,查询数据并返回),发现原本的HttpClient连接池中的一些参数配置可能存在问题,如defaultMaxPerRoute、一些timeout时间的设置等,虽不能确定是由于此...
2018-03-15 19:12:25
259
转载 HttpClien高并发请求连接池 - PoolingHttpClientConnectionManager
连接池技术作为创建和管理连接的缓冲池技术,目前已广泛用于诸如数据库连接等长连接的维护和管理中,能够有效减少系统的响应时间,节省服务器资源开销。其优势主要有两个:其一是减少创建连接的资源开销,其二是资源的访问控制。连接池管理的对象是长连接,对于HTTP连接是否适用,我们需要首先回顾一下长连接和短连接。 所谓长连接是指客户端与服务器端一旦建立连接以后,可以进行多次数据传输而...
2018-03-15 12:39:42
30845
5
转载 高并发、高性能 Web 架构
典型 Web App 架构以下是一个典型的高负载 web 应用示例:上图展示了一个典型的,三层架构的高性能 Web 应用。这种成熟的架构多年以来已被广泛部署于包括 Google、Yahoo、Facebook、Twitter、Wikipedia 在内的诸多大型 Web 应用中。 反向代理服务位于三层构架中最外层的反向代理服务器负责接受用户的接入请求,在实际应用中,代理服务器通常至少还要完成以下列表中...
2018-03-14 18:10:19
336
原创 java静态标示符static详解
1、static修饰的变量习惯称为静态变量,static修饰的方法称为静态方法,static修饰的代码块叫做静态代码块。1)static变量 static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。 stat...
2018-03-14 16:50:47
369
原创 JsonObject使用
1. json数据类型类型描述Number数字型String字符串型Boolean布尔型Array数组Object对象null空值(1)json中不区分整数、小数等类型,而统一使用Number来存储数字。(2)Array表示数组,以中括号"[]"括起来,元素之间以逗号分隔,元素可以为任意类型。(3)Object表示对象,类似于C语言中的结构体,以花括号"{}"括起来,其元素要求为键值对,key必须...
2018-03-14 15:11:49
1783
原创 nginx访问日志,错误日志参数说明
说明:nginx日志主要有两种:访问日志、错误日志。其中访问日志记录客户端访问nginx的每一个请求,包含用户地域来源、跳转来源、使用终端、某个URL访问量等信息,访问日志格式可以自定义;错误日志则记录客户端访问nginx出错时的日志,格式不支持自定义,通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。两种日志都可以选择性关闭。访问日志[Access.log]lo
2018-01-31 14:38:56
912
转载 html,javaScript中怎么控制复选框checkbox的全选,全不选,以及全选中,全选按钮选中,其中一个或者多个没选,则全选按钮不被选中
%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> %@ include file="/commons/jsp/htmtag.jsp"%> html> head> meta http-equ
2017-11-29 19:21:59
937
python for eclipse
2016-09-06
VS2008下打包程序
2015-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人