- 军军小站|张军博客
搜索到与相关的文章
Python

如何编写快速且线程安全的Python代码

概述如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。GIL概览有如下代码:staticPyThread_type_lockinterpreter_lock=0;/*ThisistheGIL*/这行代码位于Python2.7源码ceval.c

系统 2019-09-27 17:52:39 1781

Python

Python实现在Linux系统下更改当前进程运行用户

在上一篇文章中,我们讲了如何在linux上用python写一个守护进程。主要原理是利用linux的fork函数来创建一个进程,然后退出父进程运行,生成的子进程就会成为一个守护进程。细心观察的可能会发现,这个守护进程的运行身份是执行这个程序的用户,如果把这个守护程序加入到系统的服务项,那么这个守护程序的执行身份应该是root。一个情况出现了,root的权限比较大,如果通过这个root身份的守护程序来进行操作,危险性是比较大的。一种好的办法是生成一个身份为ro

系统 2019-09-27 17:52:32 1781

Python

Python机器学习之数据探索可视化库yellowbrick-tutorial

背景介绍从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维。陆续使用过plotly、seaborn,最终定格在了Bokeh,因为它可以与Flask完美的结合,数据看板的开发难度降低了很多。前阵子看到这个库可以较为便捷的实现数据探索,今天得空打算学习一下。原本访问的是英文文档,结果发现已经有人在做汉化,虽然看起来也像是谷歌翻译的,本着拿来主义,

系统 2019-09-27 17:52:29 1781

Python

Appium+python自动化(二十六)- 烟花一瞬,昙花一现 -Toast

简介今天宏哥在这里首先给小伙伴们和童鞋们分享一个有关昙花的小典故:话说昙花原是一位花神,她每天都开花,四季都灿烂。她还爱上了每天给她浇水除草的年轻人。后来,此事给玉帝得知。于是,玉帝大发雷霆,要拆散鸳鸯。他将花神抓了起来,把她贬为每年只能开一瞬间的昙花,不让她再和情郎相见,还把那年轻人送去灵鹫山出家,赐名韦陀,让他忘记前尘,忘记花神。多年过去了,韦陀果真忘了花神,潜心习佛,渐有所成。而花神却怎么也忘不了那个曾经照顾她的小伙子。她知道每年暮春时分,韦陀总要下

系统 2019-09-27 17:52:23 1781

Python

python如何获取列表中每个元素的下标位置

Git是编程中的基本技能之一,互联网公司几乎都在使用Git进行协作编程,昨天还有位禅友在微信上专门告诉我说星期五面试的时候刚好被问到Git,幸好在这几天学了一下。Git并不难,但会Git至少可以说明一个人的学习能力或者说对技术的嗅觉能跟上主流,如果面试问你GitHub是什么都不知道,面试官就会对你打一个大的问号。简单点评这一道题。在使用for循环迭代一个列表时,有时我们需要获取列表中每个元素所在的下标位置是多少,例如numbers=[10,29,30,41

系统 2019-09-27 17:52:23 1781

Python

Python yield与实现方法代码分析

yield的功能类似于return,但是不同之处在于它返回的是生成器。生成器生成器是通过一个或多个yield表达式构成的函数,每一个生成器都是一个迭代器(但是迭代器不一定是生成器)。如果一个函数包含yield关键字,这个函数就会变为一个生成器。生成器并不会一次返回所有结果,而是每次遇到yield关键字后返回相应结果,并保留函数当前的运行状态,等待下一次的调用。由于生成器也是一个迭代器,那么它就应该支持next方法来获取下一个值。基本操作#通过`yield`

系统 2019-09-27 17:52:18 1781

Python

Python中的__SLOTS__属性使用示例

看python社区大妈组织的内容里边有一篇讲python内存优化的,用到了__slots__。然后查了一下,总结一下。感觉非常有用python类在进行实例化的时候,会有一个__dict__属性,里边有可用的实例属性名和值。声明__slots__后,实例就只会含有__slots__里有的属性名。#coding:utf-8classA(object):x=1def__init__(self):self.y=2a=A()printa.__dict__print(

系统 2019-09-27 17:52:11 1781

Python

python学习笔记 第五章2

经典的汉诺塔问题:这里我们可以利用递归的思想去做,递归中重要的三步,我们逐条来实现:1、函数+分支结构2、递归链条3、递归基例函数+分支结构:defhanoi(n,start,end,mid):globalcountif:else:这里我们可以定义一个函数,里面的参数有:一共有n个圆盘,从start柱子移到end柱子,中间柱子为mid。这里定义一个全局变量来计算移动的步骤数,若为局部变量,会在函数内部不断初始化,所以需要定义全局变量。递归基例:ifn==1

系统 2019-09-27 17:52:07 1781

Python

糟了,上网记录被 Python 扒下来了!

点击上方“码农突围”,马上关注,每天早上8:50准时推送真爱,请置顶或星标摘要:分享个Python神工具。长时间使用浏览器会积累大量浏览器历史记录,这些是很隐私的数据,里面甚至可能有一些不可描述的网站或者搜索记录不想让别人知道。不过,我们自己可能会感兴趣,天天都在上网,想知道长期下来是都在摸鱼还是有认真工作。其次,了解下自己每天打开多少次网页、哪些网站上的最多、常搜哪些关键词,这些也很有趣。下面就来给大家介绍一款Python编写的神工具,可以一键分析你的上

系统 2019-09-27 17:51:41 1781

Python

Python 实现elasticsearch group by

es实现聚合es通过agg实现聚合,详情可见es文档有时候查询es数据的时候可能需要实现多字段groupby的功能,例如:SELECTsum(item_count)fromAgroupbyfield1,field2,field3要实现多个维度的聚合,需要嵌套的agg查询语句:{"query":{},"aggs":{"field1":{"terms":{"field":"field1","size":2147483647#设置一个大的分桶数,防止一次统计不完

系统 2019-09-27 17:51:32 1781