搜索到与相关的文章
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:42 1719

Python

Python Web Flask源码解读(四)——全局变量

关于我一个有思想的程序猿,终身学习实践者,目前在一个创业团队任teamlead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。Github:https://github.com/hylinux1024微信公众号:终身开发者(angrycode)Flask中全局变量有current_app、request、g和session。不过需要注意的是虽然标题是写着全局变量,但实际上这些变量都跟当前请求的上下文环境有关,下面一起

系统 2019-09-27 17:52:41 1719

Python

Django或者Flask创建Python虚拟环境启动第一个Hello

前言刚开始开发Web的时候,没太在意隔离虚拟环境,用了系统的那一套,Python2.7版本是系统自带的,虽说明年就结束了,但是现在开发都会有一套3.x以上的环境,即使你开发不注意,你部署的时候总归是要隔离出来的。1.方便隔离,不同环境编写测试2.方便迁移,pipfreeze到出包文件依赖,随后提交管理和迁移都很方便virtualenv前提是你有两套PythonmikejingdeMacBook-Pro:~MKJ$whichpython/usr/bin/py

系统 2019-09-27 17:52:34 1719

Python

python 虚拟环境

mkvirtualenv-ppython3环境名创建虚拟环境rmvirtualenv环境名删除环境进入虚拟环境workon环境名(workon+tab可以出来所有环境)查看环境下所有包pip3list查看环境下安装的包(不包括原生python包)pip3freeze依赖包文件生成pip3freeze>requirements.txt环境导入依赖包pip3install-rrequirements.txt普通安装pip3install包名这是linux下的指

系统 2019-09-27 17:52:34 1719

Python

python学习——锁

1.锁:Lock(1次放1个)同步锁线程安全,多线程操作时,内部会让所有线程排队处理。如:list/dict/Queue线程不安全+人=>排队处理。需求:a.创建100个线程,在列表中追加8b.创建100个线程v=[]锁-把自己的添加到列表中。-在读取列表的最后一个。解锁以后锁一个代码块:importthreadingimporttimev=[]lock=threading.Lock()deffunc(arg):lock.acquire()#锁的区域---

系统 2019-09-27 17:52:33 1719

Python

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

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

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

Python

关于python中密码加盐的学习体会小结

给密码加密是什么:用户注册的密码一般网站管理人员会利用md5方法加密,这种加密方法的好处是它是单向加密的,也就是说,你只有在提前知道某一串密码对应的md5加密码,才能反推出密码是多少,虽然有极小的几率可能造成两个密码加密之后的值相等(这种现象称为碰撞),不过基本上不用担心,因为概率是极低的。在常用的hashlib模块里还有sha1()等方法,它的本质和md5是一致的,只是产生的结果是160bit字节,通常用一个40位的16进制字符串表示。而md5是最常见的

系统 2019-09-27 17:52:27 1719

Python

获取python文件扩展名和文件名方法

Python语言与Perl,C和Java等语言有许多相似之处,也有一定的差异性,以下是Python语言获取文件后缀名和文件名的方法:#Python获取文件后缀名的方法importos.pathdeffile_extension(path):returnos.path.splitext(path)[1]printfile_extension('/py/a.py')输出:.py#Python获取目录和文件名importos.pathdeffile_extens

系统 2019-09-27 17:52:22 1719

Python

Python语法分析之字符串格式化

前序Thereshouldbeone-andpreferablyonlyone-obviouswaytodoit.――――theZenofPython意译:Python提倡用一种,而且最好是只有一种方法来完成一件事虽然Python有以上的提倡,但却在字符串格式化方面,没有做到这一点。字符串格式化敲黑板,划重点:在Python中有至少三种常见方式实现字符串格式化:%-formatting格式(Python2.6以前,推荐输出时使用)str.format()格

系统 2019-09-27 17:52:21 1719

Python

python文件及路径管理函数

glob模块说明:1、glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作*、?、[]这三个通配符,*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。glob.glob("字符串+通配符")该方法返回指定路径所有匹配的文件的列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径),其返回的文件名只包括当前目

系统 2019-09-27 17:52:15 1719