
Python
文章平均质量分 84
范桂飓
AWS Global Community Hero,EdgeGallery 开源社区架构组副主席及秘书处成员,跑步与自行车运动爱好者。
- 2016 年度十大博客之星得主
- 2021 年度十大博客之星得主
- 2022 年度博客新星评委
- 2023 年度博客之星评委
- 2024 年度博客之星评委
展开
-
Python 编程系列
目录文章目录目录入门进阶模块数据结构笔试集入门《Python 是一门怎样的语言》《Python_编程特色》《拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录》《送书福利| Python 完全自学手册》《MAC Pro 同时安装 Python2 和 Python3》《CentOS6.5 升级 Python 2.7 版本》《Setup Python 开发环境和IPython的基本使用》《IPython4_Notebook》《Python 基础知识储备》《Python 基础原创 2020-07-08 00:36:44 · 2076 阅读 · 0 评论 -
Neutron — API Service Web 开发框架
WSGI(Web Server Gateway Interface,Web 服务器网关接口)是一个 Python Web Application 和 Web Server 之间的标准交互接口规范,定义了 Web Application 如何集成到不同的 Web Server(e.g. Apache、Nginx 等)、或高并发的网络框架(e.g. Eventlet)中的交互标准,包括调用接口函数、请求和响应的数据结构以及环境变量等等,使得它们能够协同工作。后来的新项目都采用了更简单高效的 Pecan 框架。原创 2023-07-06 17:51:34 · 1727 阅读 · 0 评论 -
Python Module — OpenAI ChatGPT API
与 ChatGPT 进行 C/S 交互,返回 AI 模型生成的对话文本。注意,该接口是 Stateless 的,每次调用都不包含对话的上下文。这意味着需要客户端应用程序自己维护 “聊天记录“。OpenAI Python SDK 用于开发与 OpenAI RESTful API 进行交互的客户端应用程序,包含了 OpenAI 的各种人工智能模型的 API。OpenAI ChatCompletion 模块用于访问 ChatGPT 语言模型,用于实现对话式(Chat)AI 应用程序。原创 2023-03-28 11:21:50 · 9536 阅读 · 9 评论 -
Python Module — prompt_toolkit CLI 库
prompt_toolkit 是一个用于构建 CLI 应用程序的 Python 库,可以让我们轻松地构建强大的交互式命令行应用程序。除此之外,prompt_toolkit 还支持 ANSI 转义序列,可以在控制台中创建彩色的文本和界面元素。prompt_toolkit 还可以通过支持异步输入和输出,使得处理 I/O 密集型任务变得更加高效。原创 2023-03-28 10:29:48 · 1677 阅读 · 0 评论 -
Python Module — rich CLI 富文本库
它可以帮助开发者在终端中渲染各种文本样式、颜色和布局,并支持在表格、面板、进度条等控件中展示数据。Python Rich 支持各种文本样式,如加粗、斜体、下划线、删除线、高亮等,也支持不同的颜色、背景色和标记符号。Python Rich 还提供了丰富的控件,如表格、面板、进度条、树形结构等,让开发者可以更方便地展示和组织数据。总的来说,Python Rich 是一个非常实用和强大的终端美化库,可以让开发者更方便地开发交互式的终端应用程序,提高用户体验和可读性。效果:颜色高亮、下划线、加粗、表情。原创 2023-03-28 09:48:59 · 1089 阅读 · 0 评论 -
Python 进阶 — 面向对象编程
目录文章目录目录面向对象思想面向对象编程面向对象编程的特性封装继承多态面向对象编程的优势面向对象思想面向对象不仅是一种编程思想,更是解决问题和处理数据的方式,面向对象是一种对现实世界的理解和抽象的方法。以面向对象思想为基础发展而来的技术主要有:OOA(Object Oriented Analysis,面向对象的分析)OOD(Object Oriented Design,面向对象的设计)OOP(Object Oriented Programming,面向对象的编程实现)面向对象编程面向对原创 2022-02-27 23:35:59 · 1372 阅读 · 0 评论 -
Python Module — grpcio gRPC 远程调用示例程序
目录文章目录目录Py3 gRPC demo1、安装 grpcio2、使用 Protocol Buffers 来定义 gRPC API3、基于 .proto 文件生成 gRPC 代码gRPC ClientgRPC Server4、运行测试Py3 gRPC demo实现 2 个微服务,调用链关系如上图所示:Marketplace(图书集市):简单的 Web 程序,向用户展示所有图书列表。Recommendations(图书推荐):向用户展示推荐的图书列表。项目初始目录结构:py3_grpc_原创 2022-02-18 14:47:36 · 1917 阅读 · 1 评论 -
Python 进阶 — 面向对象设计原则
目录文章目录目录开放/封闭原则控制反转原则接口隔离原则单一职责原则替换原则开放/封闭原则开放/封闭原则,类和对象及其方法对于扩展来说,是开放的;对于修改来说,是要封闭的。现有的类不会被修改,因此退化的可能性较小。有助于保持以前代码的向后兼容性。控制反转原则控制反转原则,高层级的模块不应该依赖于低层级的模块,它们应该依赖于抽象(接口)。任何两个模块都不应以紧密的方式相互依赖。消弱了模块间的紧耦合,因此消除了系统中的复杂性。由于依赖模块之间有一个明确的抽象层(由接口、或钩子提供),因此便原创 2022-02-13 23:17:21 · 1131 阅读 · 0 评论 -
Python Module — asyncio 协程并发
目录文章目录目录Python 的协程asyncioEvent Loopasyncasync defasync forasync withawaitFuture 和 TaskPython 的协程Python 对协程的支持经历了多个版本:Python2.x 对协程的支持比较有限,通过 yield 关键字支持的生成器实现了一部分协程的功能但不完全。第三方库 gevent 对协程有更好的支持。Python3.4 中提供了 asyncio 模块。Python3.5 中引入了 async/await 关原创 2022-01-18 21:33:08 · 2779 阅读 · 0 评论 -
Python 进阶 — 协程
目录文章目录目录协程协程的应用场景抢占式调度的缺点用户态协同调度的优势协程的特点Python 中的协程参考文档协程协程是一种多方协同的工作方式。当前执行者在某个时刻主动让出(yield)控制流,并记住自身当前的状态,以便在控制流返回时能从上次让出的位置恢复(resume)执行。简而言之,协程的核心思想就在于执行者对控制流的 “主动让出” 和 “恢复”。相对于,线程此类的 “抢占式调度” 而言,协程是一种 “协作式调度” 方式。协程的应用场景抢占式调度的缺点在 I/O 密集型场景中,抢占式调度原创 2022-01-17 20:25:10 · 2059 阅读 · 0 评论 -
Python Module — WSME
目录文章目录目录WSMEWSME 的使用WSMEWSME(Web Service Made Easy)是一个 RESTful API Service Typing 库,用于对 HTTP Request Body、Response Body、Response Status Code 进行规范化的校验和约束。WSME 的设计理念是:在大多数情况下,Web Services 对输入/输出数据类型的要求都是严格的。官方文档:https://wsme.readthedocs.io/en/latest/in原创 2022-01-14 14:54:20 · 1632 阅读 · 0 评论 -
Python 进阶 — Py2、Py3 的 string encode/decode 与兼容性
目录文章目录目录Python 的字符串Python 的编码(encode)与解码(decode)Python 的字符串Python 具有两种不同的 String,一种存储文本,一种存储字节。P2:对于文本:采用 Unicode 存储。对于字节:采用原始字节序列或者 ASCII 存储。P3:对于文本:采用 Unicode 存储,被命名为 str。对于字节:采用 Unicode 存储,被命名为 bytes。P2 str():elp on class str in module __原创 2021-11-17 12:57:23 · 2858 阅读 · 0 评论 -
Python 进阶 — Flake8 静态代码检查工具
目录文章目录目录Flake8错误返回码安装使用插件Flake8Flake8 是由 Python 官方发布的一款静态代码检查工具(https://pypi.python.org/pypi/flake8/),相对于 PyLint 而言,Flake8 的检查规则灵活,支持集成额外插件,扩展性强。Flake8 是对下面 3 个工具的封装:PyFlakes:静态检查 Python 代码逻辑错误的工具。PEP8:静态检查 PEP8 编码风格的工具。NedBatchelder’s McCabe:静态分析P原创 2021-11-16 22:51:58 · 2623 阅读 · 0 评论 -
SCons — 程序构建工具
目录文章目录目录SCons - a software construction tool使用示例SCons - a software construction toolSCons 类似于 Make Tool,同样是一款自动化程序构建(Construction)工具,通过 Python 实现,可用来替代 Make 编写复杂的 makefile。并且 Scons 是跨平台的,只要 Scons 脚本写的好,就可以在 Linux 或 Windows 下随意编译。github:https://github.原创 2021-11-11 12:47:11 · 1978 阅读 · 0 评论 -
Python 进阶 — 创建本地 PyPI 仓库与 Python 程序的离线部署
目录文章目录目录创建本地 PyPI 仓库安装 pypiserver上传 Python 安装包使用私有 PyPI 仓库创建本地 PyPI 仓库安装 pypiserver$ mkdir pypiserver$ cd pypiserver$ mkdir ./packages$ mkdir ./auth$ pip install passlib$ cd auth# 生成 htpass 文件# 会 prompt 密码输入,重复两遍一样的 $ htpasswd -sc .htaccess u原创 2021-10-11 15:13:43 · 2515 阅读 · 0 评论 -
面向 CPython GIL 的多线程编程要点
目录文章目录目录Python GIL 对线程并发性能的影响Python 的线程安全问题Python 的原子性操作Python 的线程库锁Python GIL 对线程并发性能的影响说到这里,不妨继续引入 Python GIL 的问题。在多处理器时代,程序要想充分的利用计算平台的性能,就必须按照并发方式进行设计。但是很遗憾,对于 Python 程序而言,不管你的服务器拥有多少个处理器,任何时候...原创 2020-05-02 23:34:00 · 2060 阅读 · 0 评论 -
Sphinx 自动化文档
目录文章目录目录Sphinx入门reStructuredText 语法格式标题、列表、正文、要点表格代码块引用其他模块文件引用静态图片SphinxSphinx 是一个工具,它使得创建一个智能而美丽的文档变得简单。作者是 Georg Brandl,基于 BSD 许可证。起初为写 Python 文档而诞生的 Sphinx,现在已经支持为各种语言生成软件开发文档。Sphinx 使用 reStruc...原创 2020-03-03 22:15:26 · 2157 阅读 · 0 评论 -
MAC Pro 同时安装 Python2 和 Python3
目录文章目录目录安装 Python2安装 Python3不同版本Python路径配置 Python2 和 Python3安装 Python2MAC 系统已经默认带有 Python2.7 了,所以无需安装它。安装 Python3brew install python3不同版本Python路径MAC 系统自带 Python2.7,而我们安装 Python3 的时候,可以通过 brew ...转载 2020-03-03 01:06:28 · 2799 阅读 · 0 评论 -
SQLite 版本引发的 Python 程序调用问题
问题在跑 OpenStack functional 功能测试的时候有两个用例过不去。nova.tests.functional.db.test_resource_provider.ResourceClassTestCase.test_create_duplicate_id_retrynova.tests.functional.db.test_resource_provider.Resour...原创 2019-06-04 18:52:06 · 2579 阅读 · 0 评论 -
用 Python 解答两道来自阿里伯乐系统的笔试题
目录目录前言题目一分析实现题目二分析实现前言朋友到阿里面试,分享两道小题,博主比较闲就试着用 Python 解答一下,实现方式肯定是多种多样的,优劣也会各有不同,欢迎交流。题目一三个线程交替打印 abcabcabc…,一个打印 a,一个打印 b,一个打印 c。分析典型的线程同步问题,解决思路是互斥锁,三个线程通过锁来完成互斥下的协作...原创 2018-07-29 11:04:11 · 4588 阅读 · 1 评论 -
Python 2 和 3 的区别及兼容技巧
目录目录前言Python 2 or 3 ?不同与兼容统一不等于语法统一整数类型统一整数除法统一缩进语法统一类定义统一字符编码类型统一导入模块的路径搜索方式修正列表推导式的变量作用域泄露修正非法比较操作异常统一抛出异常语法统一异常处理语法统一输入函数统一输出函数统一文件操作函数统一列表迭代器生成函数统一迭代器迭代函数前言最近 Py...原创 2018-03-18 13:06:39 · 4766 阅读 · 0 评论 -
Python 笔试集(4):True + True == ?
目录目录前文列表面试题True Ture 布尔值布尔类型是特殊的整数类型前文列表Python 笔试集:什么时候 i = i + 1 并不等于 i += 1? Python 笔试集(1):关于 Python 链式赋值的坑 Python 笔试集(2):你不知道的 Python 整数 Python 笔试集(3):编译/解释?动态/静态?强/弱?Python 是一门怎样的语言面试题:Tru原创 2017-12-28 08:54:07 · 3564 阅读 · 0 评论 -
Python 是一门怎样的语言
面试题解释/编译?动态/静态?强/弱?Python 到底是一门怎样的语言?编译 or 解释?编译、解释都是指将(与人类亲和的)编程语言翻译成(计算机能够理解的)机器语言(Machine code)的过程。 而两者的区别就在于「翻译时机」的不同,看一个例子:Emmmmmmmmmmmmm~ 神比喻 !!没错,编译型语言会将全部源代码一次性翻译完成,最终得到可执行文件,所以其主要特征就是「一次编译,多次原创 2017-12-21 09:21:01 · 2813 阅读 · 0 评论 -
Python 笔试集(2):你不知道的 Python 整数
面试题分别给出下述代码在终端(e.g. IPyhon)中和在程序中运行的结果:a = 256b = 256c = 257d = 257def foo(): e = 257 f = 257 print('a is b: %s' % (a is b)) print('c is d: %s' % (c is d)) print('c is e: %s' % (c原创 2017-12-14 12:51:50 · 2138 阅读 · 0 评论 -
Python 笔试集(1):关于 Python 链式赋值的坑
前言Python 的链式赋值是一种简易型批量赋值语句,一行代码即可为多个变量同时进行赋值。 例如:x = y = z = 1链式赋值是一种非常优雅的赋值方式,简单、高效且实用。但同时它也是一个危险的糖衣炸弹,值得我们引起关注。面试题:求链式赋值语句中变量 x 的值?x = [1, 2, 3, 4, 5]i = 0i = x[i] = 3如果你有过 C 语言的编程经验,那么你的思维习惯可能会让原创 2017-12-07 00:28:05 · 2897 阅读 · 1 评论 -
Python 笔试集:什么时候 i = i + 1 并不等于 i += 1?
增强型赋值语句是经常被使用到的,因为从各种学习渠道中,我们能够得知 i += 1 的效率往往要比 i = i + 1 更高一些(这里以 += 为例,实际上增强型赋值语句不仅限于此)。所以我们会乐此不疲的在任何能够替换普通赋值语句的地方使用增量型赋值语句,以此来优化代码。那么我们是否有想过,在什么情况下 i += 1 其实并不等效于 i = i + 1 !!例一:使用增强型赋值语句:In [1]:原创 2017-11-29 11:55:13 · 12357 阅读 · 2 评论 -
Python Module_Socket_网络编程
目录目录Socket套接字套接字的原理套接字的数据处理方式套接字类型Socket 标准函数ServerSocket 标准函数ClientSocket 标准函数公有标准函数Socket 编程编程思路DemoTCP 服务端TCP 客户端Socket套接字源 IP 地址和目的 IP 地址以及源端口号和目的端口号的组合称为套接字,是支持 TCP/IP 的网络通信的基本操作单元,可原创 2017-08-06 11:21:26 · 2441 阅读 · 0 评论 -
Python 常用 PEP8 编码规范和建议
目录目录代码布局缩进最大行宽空行模块导入字符串表达式和语句中的空格注释命名规则编程建议代码布局缩进每级缩进用4个空格。括号中使用垂直隐式缩进或使用悬挂缩进。EXAMPLE:# (垂直隐式缩进)对准左括号foo = long_function_name(var_one, var_two, var_three, var_fo原创 2017-01-03 17:51:32 · 6644 阅读 · 0 评论 -
Python 进阶_OOP 面向对象编程_组合与继承
目录目录前言组合派生前言我们定义一个类是希望能够把类当成模块来使用, 并把类嵌入到我们的应用代码中, 和其他的数据类型/逻辑执行流结合使用. 一般来说我们可以使用两种方法在代码中利用类. 那就是组合和派生.组合组合: 就是将不同的类混合并加入到其他类中, 来 增加类的功能 / 提高代码的重用性 / 易于维护(对类的修改会直接反应到整个应用中) . 我们可以原创 2016-11-06 13:14:07 · 5151 阅读 · 0 评论 -
Python 进阶_OOP 面向对象编程_静态方法和类方法
目录目录静态方法类方法使用函数修饰符来声明静态方法和类方法静态方法静态方法仅是类中的函数, 不需要绑定实例, 也就是说静态方法的定义不需要传入 self 参数. 静态方法不属于类的某一个实例对象, 而是属于类本身, 所以不需要绑定到实例对象. 可以通过 className.staticMethodName 的方式来调用. 特点: 只能使用静态变量, 所以始终占用同一个内存, 执行效率更高,原创 2016-10-29 19:34:53 · 2700 阅读 · 0 评论 -
Python 进阶_OOP 面向对象编程_self 的实例绑定
目录目录self 和绑定调用非绑定的方法self 和绑定在 Python 中 self 变量是特殊的, 其用于在实例方法中引用该方法所绑定的实例, 换句话说就是 Python 在实例化对象时会自动的将实例对象传递到类体的 self 变量中, 类体中的 self 变量代表了该类的实例对象. 实例方法无论在任何地方被调用, 实例对象总是作为第一个参数被传递进去, 从而实现了实例对象和实例方法的绑定,原创 2016-10-26 19:59:22 · 2653 阅读 · 0 评论 -
Python 进阶_OOP 面向对象编程_实例属性和方法
目录目录构造器和解构器构造器 __init__真构造器 __new__解构器 __del__实例方法Python 中的 抽象方法实例属性查看实例属性实例属性和类属性的区别访问不可变类属性访问可变类属性构造器和解构器构造器 __init__()类函数 __init__() 是 Python 类中预定义的方法,需要被重载才会生效。以双下划线 “__” 开头和结尾, 在 Python原创 2016-10-23 19:42:22 · 2522 阅读 · 0 评论 -
Python 进阶_OOP 面向对象编程_类属性和方法
类属性在理解类属性之前要先搞清楚 实例属性 和 函数属性 之间的区别: 1. 实例属性:指的是实例化类对象的属性,需要在类中使用 self 关键字来将其和实例化对象绑定的属性。 2. 函数属性:指的是定义在函数体内的属性,其可以是实例属性,也可以是类属性。 3. 类属性:是一个与实例无关的属性,比起实例属性而言,它更加的 静态,当定义在类方法中时,并不会因为方法原创 2016-10-23 15:51:18 · 2394 阅读 · 0 评论 -
Python 进阶_OOP 面向对象编程_类和继承
python 类的定义是使用原创 2016-10-23 11:38:09 · 2593 阅读 · 0 评论 -
Python 进阶_模块 & 包
目录目录模块的搜索路径和路径搜索搜索路径命名空间和变量作用域的比较变量名的查找覆盖导入模块import 语句from-import 语句模块的搜索路径和路径搜索搜索路径默认的模块搜索路径在 Python 解析器编译安装时被指定, 我们可以通过 sys 模块来查看和修改它:In [4]: sys.pathOut[4]: ['', '原创 2016-10-19 17:11:00 · 2299 阅读 · 0 评论 -
Python 进阶_函数式编程
目录 [toc]函数式编程首先要确定一点就是:函数 != 函数式 函数式编程是一种编程的范式。 特点:把计算视为函数而非指令纯函数式编程,不需要变量,没有副作用,测试简单支持高阶函数,代码简介Python 的函数式编程特点需要注意的是,Python 不是也不可能会成为一种纯函数是编程语言,但 Python 仍支持许多有价值的函数式编程语言的构建方法。Py原创 2016-10-16 01:09:46 · 2286 阅读 · 0 评论 -
拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录
目录目录关于这本书必看知识点最后关于这本书《Python 核心编程 (第二版)》是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高级主题 两大部分,以 Python 2.x 作为主要演示版本,涵盖的知识面广,知识点较齐全,代码多且好理解,但对 Python 版本特性的内容太久远,不合时宜。整体来说 Python 核心 部分是主要内容,高级主题 部分原创 2016-10-07 15:20:17 · 4553 阅读 · 0 评论 -
Python 进阶_生成器 & 生成器表达式
目录目录相关知识点生成器生成器 fab 的执行过程生成器和迭代器的区别生成器的优势加强的生成器特性生成器表达式生成器表达式样例小结相关知识点Python 进阶_迭代器 & 列表解析 生成器带有 yield 关键字的的函数在 Python 中被称之为 generator(生成器)。Python 解释器会将带有 yield 关键字的函数视为一个 generator 来处理。一个函数或者原创 2016-09-17 12:44:57 · 9029 阅读 · 3 评论 -
Python 进阶_迭代器 & 列表解析
目录目录迭代器iter 内建的迭代器生成函数迭代器在 for 循环中迭代器与字典迭代器与文件创建迭代器对象创建迭代对象并实现委托迭代列表解析列表解析的样例列表解析和迭代器迭代器迭代器是一个含有 next() 方法的对象,让我们可以迭代不是序列数据类型但表现出序列行为的对象,所以可以说迭代器为类序列对象提供了一个类序列的接口(只要是实现了 __iter__() 方法的对象,就可以使原创 2016-09-17 01:44:26 · 4822 阅读 · 4 评论 -
Python 进阶_闭包 & 装饰器
目录目录闭包函数的实质和属性闭包有什么好处小结装饰器更加深入的看看装饰器的执行过程小结闭包Closure: 如果内层函数引用了外层函数的局部变量(L),并且在外层函数中 return 内层函数时,这种关系就称之为闭包。 闭包的特点就是返回的内层函数还引用了外层函数的局部变量,所以要想正确的使用闭包,那么就要确保这个被内层函数引用的局部变量是不变的。函数的实质和属性函数是一个对象,在原创 2016-09-11 17:38:08 · 2899 阅读 · 0 评论