11 posts tagged with "python"
View All TagsPython3.12 介绍
摘要:
python3.12 与 2023.10 发布正式版:3.12.0,开始进入生产阶段的生命周期。
本文从 jupyter 导出,每段代码后面跟随的是代码的执行结果。
Python3.11 介绍
Python 3.11 于 2022.10.24 发布正式版 3.11.0,历经 1 年开发和测试:
- 2021.10 - 2022.04:发布 7 个 a 版本;
- 2022.05 - 2022.07:发布 5 个 b 版本;
- 2022.8.8:rc1
- 2022.9.12:rc2
- 2022.10.24:3.11.0
重点新特性:
- Runtime、解释器
- Faster Cpython
- bytecode 中添加偏移量对应关系,以便 traceback 中指明出错位置
- 语言(语法、词法)
- 新增“异常组”:
ExceptionGroup
&try...except*
- 新增“异常组”:
- 标准库
- 新增
tomllib
模块 asyncio
模块- 新增“任务组”:
asyncio.TaskGroup
Task
新增cancelling()
,uncancel()
方法
- 新增“任务组”:
inspect
模块- 新增
getmembers_static()
- 新增
dataclasses
模块typing
模块- 增加
typing.TypeVarTuple
- 增加
typing.Self
- 增加
typing.LiteralString
- 增加
typing.TypedDict
- 增加
- 新增
本文来导读一下这个刚刚正式揭开面纱的新版本。
Go 调用 Python
Go 怎么调用 Python?或者说 Python 怎么嵌入到 Go?—— 我要研究明白。
- 方案 1:go -- RESTFul -- python
- 需要用户起一个 python 进程的 http server 进程,并且定义 RESTFul API。
- 方案 2:go -- rpc -- python
- 可用 grpc 或其他 rpc,也是需要单独启动一个 python 进程并开启 rpc server,go 中代码作为 rpc client。
- 方案 3:go -- cgo/内存共享 -- python(C-API)
- python 的解释器绝大多数人都是使用官方的 CPython,内核和解释器是用 C 实现的,可以用 C 代码方便的调用。
- go 又和 C 是天然搭档,通过标准库中的 cgo 组件可以无缝调用 C。
- 此时 python core 作为动态库链接到 go 上。
RESTFul 和 RPC 都是网络调用方式,更适合高度解耦的场景,cgo 或直接内存共享则是效率优先。 —— 我打算先摸索一下方案 3。一通搜索,找到了一些好文章,再加上 10 天左右的实战摸索,总结以下要点:
下面依次展开描述图中 1、2、3:
python、go、nodejs、rust 命令对比
近些年学习的这几门语言,比早年吃饭的 C 语言多出了很多额外功能,做个表格对比之。
Python 相对引用导入
一图解释 Python 相对引用的 import
python asyncio 协程库一页纸说明
asyncio 是 python 力推多年的携程库,与其 线程库 相得益彰,更轻量,并且协程可以访问同一进程中的变量,不需要进程间通信来传递数据,所以使用起来非常顺手。
asyncio 官方文档写的非常简练和有效,半小时内可以学习和测试完,下面为我的一段 HelloWrold,感觉可以更快速的帮你认识 协程。
Python 中 import 引入和 file 寻找的绝对和相对路径
有这样的目录和文件:
foo
├── bar
│ └── main.py
├── img
│ └── benz.png
└── utils
└── tool.py
我们来考察 3 个变量的值:
Python 安装到哪 & 从哪执行
摘要:
- python 强烈建议一律使用虚拟环境,在原生操作系统上几乎无法管理多个项目有包依赖关系冲突的情况。
- 操作系统级只安装最基础包,且使用
python3.X -m pip install
来安装,虚拟级 source 后可直接pip install
。
虽然一直都用虚拟环境,但还是想把系统安装的 python 路径整理一下,今天了结这个心愿。