![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
鹰眼2号
太极的奥秘在于静
展开
-
python细节
在同一个线程里面,可以连续调用多次acquire,一定要注意acquire的次数和release的次数相同python解释器包含了python虚拟机 https://www.zhihu.com/question/59570108?sort=createdfor是按顺序执行,当其中卡主,会根据上下文进行切换到别的地方执行在woindows下进行多进程编程,最好放在 if ...原创 2019-12-22 22:51:26 · 1545 阅读 · 0 评论 -
python高级编程
一。python中一切皆是对象1.动态语言和静态语言的区别java虽然也是面向对象,但是在其中有类和实例(对象)这两个对象python是所有的都是对象,面向对象更加彻底2.python中函数和类也是对象,属于python的一等公民,一等公民有这几个特权可以赋值给一个变量可以添加到集合对象中可以作为参数传递给函数可以当做函数的返回值def ask(name="bobby"):#如果...原创 2019-11-10 22:52:41 · 1363 阅读 · 0 评论 -
python高级【GIL】线程,进程,进程池,线程池,进程间的通信,线程间的通信
1.概念#gil global interpreter lock (cpython)#python中一个线程对应于c语言中的一个线程#gil使得同一个时刻只有一个线程在一个cpu上执行字节码, 无法将多个线程映射到多个cpu上执行(而C和java是可以的)#有了GIL是不是就是代表线程是绝对安全的? 不是#gil会根据执行的字节码行数以及时间片释放gil,gil在遇到io的操作时候主动...原创 2019-01-28 16:37:55 · 228 阅读 · 0 评论 -
非阻塞IO编程
同步和异步可以理解为一种消息的传递方式阻塞和非阻塞可以理解为一种函数的执行方式IO非阻塞编程 select+回调+事件循环from selectors import DefaultSelector, 是在select基础上的进一步封装是单线程,不存在内存的问题#1. epoll并不代表一定比select好# 在并发高的情况下,连接活跃度不是很高...原创 2019-01-29 10:48:41 · 433 阅读 · 0 评论 -
list[::-1]
原创 2019-02-03 23:35:14 · 693 阅读 · 0 评论 -
协程
C10kC10M 如何利用8核cpu,64G内存,在10gbps的网络上保持1000万的并发1.select+回调+事件循环 的问题代码维护难,有与在函数内部可以进行一步的相互跳转 代码难以阅读2.协程为了兼顾有并发性的同时还有传统函数执行时的同步,这就是协程的好处协程是单线程,在一个线程之间的切换,开销比线程间的切换更小协程:实现了迭代协议(__iter__,__...原创 2019-01-30 08:38:43 · 97 阅读 · 0 评论 -
yield from
#pep380#1. RESULT = yield from EXPR可以简化成下面这样#一些说明"""_i:子生成器,同时也是一个迭代器_y:子生成器生产的值_r:yield from 表达式最终的值_s:调用方通过send()发送的值_e:异常对象"""_i = iter(EXPR) # EXPR是一个可迭代对象,_i其实是子生成器;try: _...原创 2019-01-30 10:07:52 · 197 阅读 · 0 评论 -
python进阶【三】
1.Python3之多线程GIL、同步锁、信号量、死锁与递归锁、线程Queue、Event、定时器https://blog.csdn.net/qq_33733970/article/details/77719427原创 2019-01-31 08:36:38 · 115 阅读 · 0 评论 -
python新技能pipenv
一。pipenv是啥pipenv 是 Pipfile 主要倡导者、requests 作者 Kenneth Reitz 写的一个命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv。Pipfile和pipenv本来都是Kenneth Reitz的个人项目,后来贡献给了pypa组织。Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requir...原创 2019-02-20 18:11:06 · 109 阅读 · 0 评论 -
Python的namedtuple使用详情
namedtuple继承自tuple的子类,namedtuple创建一个和tuple类似的对象,而且对象拥有可访问的属性。可能你会看到有许多资料说用namedtuple创建的对象的属性不能改变,但这只说了一半,因为他的属性是可以通过._repalce()方法修改的,但是一旦修改就相当于是创建了一个新对象,如果你理解为不能修改也对。下面看一下具体的实例from collections im...原创 2019-02-21 11:39:51 · 178 阅读 · 0 评论 -
python临时文件的使用 TemporaryFile,NamedTemporaryFile
python使用临时文件使用临时文件的好处:临时文件不用命名,并且关闭后会自动被删除TempporaryFile和NamedTemporaryFile这两个文件对象都是创建临时文件的,不同点在于NameTemporaryFile可以创建一个带名字的临时文件,能通过文件系统找到。TemporaryFile创建的临时文件不能通过文件系统路径找到(只能用对象来访问)f = Tempor...原创 2019-03-06 18:27:07 · 5469 阅读 · 0 评论 -
python中基于__new__方法实现的单例设计模式
首先我们的明白,当我们实例化一个对象时,是先执行了类的__new__方法(我们没写时默认调用object.__new__),实例化对象;然后再执行类的__init__方法,对这个对象进行初始化import threadingclass Singleton(object): _instance_lock = threading.Lock() def __init...原创 2019-03-09 11:55:57 · 386 阅读 · 0 评论 -
python常用模块
python常用模块timeimport timenow = time.time()#返回一个时间戳 1556625257.1174836now_struct=time.localtime(now)#返回一个元祖结构的时间格式'''time.struct_time(tm_year=2019, tm_mon=4, tm_mday=30, tm_hour=19, tm_min=55, ...原创 2019-04-30 20:19:44 · 102 阅读 · 0 评论 -
python中一些不常用也不是很好用的概念
猴子补丁属性再运行时的动态替换,叫做猴子补丁(Monkey Patch)class Foo(object): def bar(self): print("Foo.bar")def bar(self): print("Modified bar")Foo().bar()Foo.bar = barFoo.bar()#Foo.bar#Mondified bar由于python...原创 2019-04-30 23:24:45 · 158 阅读 · 0 评论 -
python基础知识点
标题一.python语言的简单概述python编程语言格式优雅并注重实效,简单而且功能强大,非常高层但是并不妨碍用户对底层的比特(bit)和字节(Byte)的处理;python是比java等高级语言更高层的一种语言;其实python的开发性能已经被证明是满足用户的开发者可以使用想SWIG这样的工具将现有C/C++库封装为python扩展模块;同时,开发者还可以将python嵌入以其他语言编程...原创 2019-08-12 15:17:37 · 120 阅读 · 0 评论 -
线程,进程,协程
线程,进程都是内核级别的调度。协程是在一个线程中的,通过程序员在一个函数中进行,并且想写同步代码一样写异步代码在单线程[协程]里面绝对不能写耗时的操作(如:time.sleep())Tornado是基于生成器实现的协程生成器是有状态的的# -*- coding: utf-8 -*-"""Created on Fri Feb 1 08:00:08 2019@autho...原创 2019-02-01 08:23:29 · 110 阅读 · 0 评论 -
python高级【协程】
python3.5以后为了将语义变得更加明确,就引入了async和await关键词用于定义原生的协程# async def downloader(url):# return "bobby"import types@types.coroutinedef downloader(url): yield "bobby"async def download_url(url...原创 2019-02-01 07:52:22 · 99 阅读 · 0 评论 -
python网络编程
tcp通信#客户端from socket import *from time import timeHOST='localhost'PORT=21567BUFSIZE=1024ADDR=(HOST,PORT)tcpClickSock=socket(AF_INET,SOCK_STREAM)tcpClickSock.connect(ADDR)while True: ...原创 2018-09-23 13:57:54 · 117 阅读 · 0 评论 -
自定义迭代器实现斐波那契数列
#斐波那契阿数列class fib: def __init__(self): self.pre=0 self.cou=1 def __iter__(self): return self def __next__(self): #0 1 2 3 5 8 13 # print(self.pre) ...原创 2018-10-04 11:01:14 · 256 阅读 · 0 评论 -
python爬虫相关知识整理
1.彻底理解cookie,session,token参考:https://www.cnblogs.com/moyand/p/9047978.html2.反爬虫技巧http://python.jobbole.com/89196/(未完全明白)3.python(字符编码)https://www.cnblogs.com/zihe/p/6993891.html文件以什么编码保存...原创 2018-09-22 14:37:02 · 194 阅读 · 0 评论 -
python进阶知识
python进阶相关总结1.python中的global,nonlocal的作用域:https://www.cnblogs.com/z360519549/p/5172020.html python中内存变量的创建过程,涉及到垃圾回收:https://www.cnblogs.com/cnhkzyy/p/9063224.html2.python中的赋值,拷贝,深拷贝:https://...翻译 2018-09-22 11:02:11 · 372 阅读 · 0 评论 -
python文件相关操作
1.遍历目录#遍历目录import os'''os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。root 所指的是当前正在遍历的这个文件夹的本身的地址dirs 是一个 list ,内容是该文件夹中所有的...原创 2018-09-22 17:58:08 · 106 阅读 · 0 评论 -
python中用装饰器实现单例模式
python中的四种装饰器https://www.cnblogs.com/JetpropelledSnake/p/8909136.htmldef singleton(cls,*args,**kwargs): instances = {} def get_instance(*args,**kwargs): if cls not in instances:...转载 2018-10-08 20:45:14 · 186 阅读 · 0 评论 -
python中的字符串切片操作
Sequence[left:right:step]:1,若step为正,则表示从索引left开始取,直到索引right为止,但不包括索引right.如果left >= right,结果为空;如果left缺省,默认为0;如果right缺省,默认为len(Sequence);>>> l = [0,1,2,3,4,5,6,7,8,9]>>>...翻译 2018-10-30 21:07:34 · 246 阅读 · 0 评论 -
递归思想
#找出数组中的最大与最小值import mathdef maxmin(L,start,end): ''' 找到递归的出口,这是写递归的起点 将问题拆解 ''' if end-start<=1: return (max(L[start],L[end]),min(L[start],L[end])) else:...原创 2018-11-18 12:53:48 · 70 阅读 · 0 评论 -
python中Queue的坑 阻塞
python 中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。1. 阻塞模式导致数据污染import Queue q = Queue.Queue(10) for i in range(10): myData = 'A' q....原创 2018-12-02 16:07:16 · 13710 阅读 · 6 评论 -
python的赋值带来的思考 变量的地址和存放变量本身的地址 说实话我也有点晕
话不多说直接上代码1.可变对象举例# -*- coding: utf-8 -*-x=[1,2,3,4]print(id(x))print(id([1,2,3,4]))#输出:26382324155602638232413512 2.不可变对象# -*- coding: utf-8 -*-x=20print(id(x))print(id(20))#...原创 2018-12-22 20:13:51 · 379 阅读 · 1 评论 -
python 元类编辑【重点理解实际中的应用,代码都很简单】
1.动态属性的作用from datetime import datetime,dateclass User: def __init__(self,name,birthday): self.name = name self.birthday = birthday self._age=0#单下划线是一种编码规范,表示不希望在外...原创 2019-01-25 11:22:22 · 152 阅读 · 0 评论 -
python高级编程------可迭代对象,迭代器
一。迭代 协议,迭代器,可迭代对象 概念#什么是迭代协议 (可迭代类型Iterable,iterator )#迭代器是什么? 迭代器是访问集合内元素的一种方式, 一般用来遍历数据#迭代器和以下标的访问方式不一样, 迭代器是不能返回(反向)的, 迭代器提供了一种惰性方式数据的方式#[] list , __iter__(迭代协议)#只要实现__iter__方法就是可迭代对象,但...原创 2019-01-26 09:34:33 · 155 阅读 · 0 评论 -
迭代器实现文件的读取
#500G, 特殊 一行def myreadlines(f, newline):#文件,行分隔符 buf = "" while True: while newline in buf: pos = buf.index(newline) yield buf[:pos] buf = buf[pos + len(newline):]#每一次在读的时候...原创 2019-01-26 09:40:57 · 371 阅读 · 0 评论 -
python进阶知识【二】
1.pyhton中的进程,线程,协程https://www.cnblogs.com/xuyaping/p/6825115.html(IO模型有点没有完全明白) 补充:在文中的setDaemon,守护线程部分,我有一点分歧。原文如下:import threadingfrom time import ctime,sleep def Music(name): pr...原创 2018-09-23 12:18:24 · 302 阅读 · 0 评论