Python
哲米
深挖程序世界的各种疑难杂症
展开
-
Python多线程的原理与实现
目的:了解python线程执行原理 掌握多线程编程与线程同步 了解线程池的使用1 线程基本概念1.1 线程是什么?线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1) 地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2) 资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3) 线程是处理器调度的基本单位,但进程不是.(4) 二者均可并发执行.简而言之,一个程序至少有一个进程转载 2020-12-21 11:57:10 · 157 阅读 · 0 评论 -
Python版本管理之Pyenv
安装git clone https://github.com/pyenv/pyenv.git ~/.pyenv配置环境echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrcecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrcecho -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval原创 2020-12-13 17:52:58 · 129 阅读 · 0 评论 -
Python 画图
示例一: 测试化点和线,标注、左边轴#!/bin/pythonimport matplotlib.pyplot as pltimport numpy as npa,b = [],[]for i in range(4095 + 1, 64*1024+4095 + 1, 4*1024): a.append(i) if i == 4095 + 1: b.append(float(2*1024)/float(i)) else: b.appen原创 2020-07-24 12:10:30 · 166 阅读 · 0 评论 -
Python装饰器中自定义功能
场景如果我们面临一个变动很频繁的业务,以后也许需要加上一些当前想不到的逻辑,这个时候就没有办法仅仅通过参数来控制了。那么有没有办法不仅仅是传入参数,而是可以给装饰器添加不同的逻辑呢?setattr和getattr操作这两个方法一个是设置属性一个是获取属性。class A: def __init__(self): self.name = 'hello'之后,我们可以使用getattr方法去获得它的name属性a = A()getattr(a, 'name转载 2020-06-27 19:27:23 · 309 阅读 · 1 评论 -
Python进阶
真假构造函数如果你去面试Python工程师的岗位,面试官问你,请问Python当中的类的构造函数是什么?你不假思索,当然是__init__啦!如果你这么回答,很有可能你就和offer无缘了。因为在Python当中__init__并不是构造函数,__new__才是。是不是有点蒙,多西得(日语:为什么)?我们不是一直将__init__方法当做构造函数来用的吗?怎么又冒出来一个__new__,如果__new__才是构造函数,那么为什么我们创建类的时候从来不用它呢?别着急,我们慢慢来看。首先我们回顾一下转载 2020-06-18 21:04:24 · 581 阅读 · 0 评论 -
Tornado
简介Tornado龙卷风是一个开源的网络服务器框架,它是基于社交聚合网站FriendFeed的实时信息服务开发而来的。2007年由4名Google前软件工程师一起创办了FriendFeed,旨在使用户能够方便地跟踪好友在Facebook和Twitter等多个社交网站上的活动。结果两年后,Facebook宣布收购FriendFeed,交易价格约为5000万美元。而此时FriendFeed只有12名员工。据说这帮人后来又到了Google,搞出了现在的Google App Engine...我们开发这个转载 2020-06-10 20:45:53 · 301 阅读 · 0 评论 -
supervisor
supervisor是一个Linux/Unix系统上的进程监控工具,supervisor是一个Python开发的通用的进程管理程序,可以管理和监控Linux上面的进程,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启官网:http://supervisord.org/1. supervisor组件supervisord 主进程,负责管理进程的server,它会根据配置文件/etc/supervisor/supervisord.conf 创建指定数量的应用程序的子原创 2020-06-10 20:43:17 · 172 阅读 · 0 评论 -
Python Web 框架:Django、Flask 与 Tornado 的性能对比
本文的数据涉及到我面试时遇到过的问题,大概一次 http 请求到收到响应需要多少时间。这个问题在实际工作中与框架有比较大的关系,因此特别就框架的性能做了一次分析。这里使用 2016 年 6 月 9 日的报告数据: Python's Web Framework Benchmarks。本文仅关注目前最常用的三大 Python 框架:Django、 Flask 以及 Tornado。报告主要比较三点:JSON:序列化一个对象,并返回一个 json。 远程性能:从远程服务器上返回 http respo转载 2020-06-05 15:05:07 · 814 阅读 · 0 评论 -
Python L1: 快速上手
Python基本工具Python模块的搜索路径:set PYTHONPATH=E:/Project/Python/ModuleAndPackage/ or sys.path Python包的安装工具pip: pip show [package_name]ipython: pip install ipythonPip install jup...原创 2019-08-23 16:28:04 · 467 阅读 · 0 评论