Effective Python 条款 1:确认你正在使用的 Python 版本
- [Bilibili 同步视频](#Bilibili 同步视频)
- [🐍 为什么一定要关注 Python 版本](#🐍 为什么一定要关注 Python 版本)
-
- [方式 1:命令行快速查验版本](#方式 1:命令行快速查验版本)
- [方式 2:脚本内部校验版本](#方式 2:脚本内部校验版本)
- 写在最后
很多人写 Python,只是简单地把 C/Java 的业务逻辑直接翻译成 Python 语法,写出来的程序冗长晦涩,可读性堪忧😵。同样一段业务,别人寥寥数行优雅搞定,自己的代码却臃肿难维护,其中一大差距就在于是否理解 Pythonic 的编程思维。
Bilibili 同步视频
Pythonic 并不是编译器强制的硬性语法约束,而是 Python 社区在长年实践与团队协作中沉淀下来的编码审美和最佳实践✨。Python 社区一向排斥复杂绕弯的写法,追求直观、简洁、一眼就可以读懂的代码。
想要体会 Python 的底层设计哲学,打开 Python 交互终端输入下面这行代码:
python
import this
按下回车,大名鼎鼎的「Python 之禅」就会打印出来,这正是 Pythonic 思想的内核来源。
无论是从 C++、Java 转型过来的开发者,还是刚入坑 Python 的新手,都需要慢慢熟悉 Python 独有的表达方式。而一切编码优雅的前提,是搞懂自己脚下的运行环境,也就是你的 Python 解释器版本。
🐍 为什么一定要关注 Python 版本
我们本地电脑往往会同时安装多套 CPython 运行环境,CPython 也是目前使用最广泛的 Python 官方实现。这里藏着一个高频踩坑点:在终端直接敲python指令,你根本无法预判系统会唤起哪一个版本!
部分操作系统中,python这个命令别名绑定的是老旧的 Python2,想要调用 Python3,必须手动输入python3。版本一旦混淆,就会出现语法报错、第三方库不兼容、新语法特性不可用等一系列玄学 bug。经常调试半天,最后才发现根源仅仅是版本不对,白白消耗大量开发时间。
方式 1:命令行快速查验版本
在终端中可以直接执行命令查看解释器版本:
bash
# 查询 python 指令对应的实际版本
python --version
# 绝大多数系统下,Python3 需要使用 python3 来调用
python3 --version
执行完成就会输出完整版本号,例如 Python 3.8.0。
方式 2:脚本内部校验版本
部分场景需要在代码内部做版本判断,避免脚本在过低版本环境运行而崩溃。可以使用 Python 内置的sys模块获取版本相关信息。
sys.version_info返回结构化的版本元组,非常适合程序内部做版本对比;sys.version返回人类可读的完整版本字符串。
python
import sys
# 打印结构化版本信息,适合程序做判断
print(sys.version_info)
# 打印完整版本描述字符串
print(sys.version)
# 实用示例:强制要求脚本运行在 Python3.8 及以上版本
if sys.version_info < (3, 8):
raise RuntimeError("⚠️ 当前Python版本过低!本脚本需要 Python >= 3.8,请升级环境。")
本书绝大部分示例基于 Python3.7 编写,少量示例演示 Python3.8 的新增语法特性,全书不再涉及 Python2 的相关内容。
Python3 一直在持续迭代,不断加入强大好用的新特性,市面上绝大多数主流开源库也都把开发重心放在 Python3 上。强烈建议所有新项目直接采用 Python3 进行开发。
这里有一个必须记住的关键时间点:Python2 已于 2020 年 1 月 1 日正式停止全部维护❗。自此之后不再提供 bug 修复、安全补丁,也不会再把新功能向后移植到 Python2。如果生产环境继续使用 Python2,将会持续暴露在各类安全风险之下。
手里还持有 Python2 遗留老项目的开发者,可以使用 Python 自带的2to3工具,或是社区的six兼容库,分步骤把项目迁移到 Python3。
✅ 核心要点小结
-
新项目务必使用 Python3 开发,享受完整的社区维护与新特性;
-
在终端执行脚本前,确认实际调用的 Python 解释器版本,不要凭主观猜测;
-
Python2 已经停止维护,不要用来开发新项目。
写在最后
写出地道的 Pythonic 代码,并不是一上来就要钻研各种高级黑魔法。把版本环境这种基础细节把控好,避开环境带来的隐形坑,才能为后续高质量编码打好基础。

如果你想进一步优化成掘金、知乎的发布稿件,工作任务模式可以帮你补充摘要、配图思路和文末互动话题,要不要使用?