几个被淘汰的Python库,请不要再用!( 三 )


此外,有些事情是 f-strings 根本无法做到的,例如在运行时填充模板 - 即动态格式 - 这就是 f-strings 被称为文字字符串格式的原因:
# 动态设置模板及其参数def func(tpl: str, param1: str, param2: str) -> str:return tpl.format(param=param1, param2=param2)some_template = "First template: {param1}, {param2}"another_template = "Other template: {param1} and {param2}"print(func(some_template, "Hello", "World"))print(func(another_template, "Hello", "Python"))# 动态重用具有不同参数的相同模板.inputs = ["Hello", "World", "!"]template = "Here's some dynamic value: {value}"for value in inputs:print(template.format(value=https://www.isolves.com/it/cxkf/yy/Python/2023-06-29/value))最重要的是,尽可能使用 f 字符串,因为它们更具可读性和更高性能,但请注意,在某些情况下仍然首选和/或需要其他格式样式 。
Tomllib 而不是 tomliTOML 是一种广泛使用的配置格式,对于 Python 的工具和生态系统尤其重要,因为它用于 pyproject.toml 配置文件,到目前为止,你必须使用外部库来管理 TOML 文件,但是从 Python 3.11 开始,将有一个名为 tomllib 的内置库,它基于 toml 包 。
所以,一旦你切换到 Python 3.11,你应该养成使用 import tomllib 而不是 import tomli 的习惯 。少了一种需要担心的依赖!
# import tomli as tomllibimport tomllibwith open("pyproject.toml", "rb") as f:config = tomllib.load(f)print(config)# {'project': {'authors': [{'emAIl': 'contact@martinheinz.dev',#'name': 'Martin Heinz'}],#'dependencies': ['flask', 'requests'],#'description': 'Example Package',#'name': 'some-app',#'version': '0.1.0'}}toml_string = """[project]name = "another-app"description = "Example Package"version = "0.1.1""""config = tomllib.loads(toml_string)print(config)# {'project': {'name': 'another-app', 'description': 'Example Package', 'version': '0.1.1'}}Setuptools 而不是  distutils最后一个更像是弃用通知:
由于 Distutils 已弃用,因此同样不鼓励使用任何来自 distutils 的函数或对象,Setuptools 旨在替换或弃用所有此类用途 。
是时候告别 distutils 包并切换到 setuptools 了,setuptools 文档提供了有关如何替换 distutils 用法的指导,除此之外,PEP 632 还为 setuptools 未涵盖的部分 distutils 提供迁移建议 。
总结每个新的 Python 版本都会带来新的特性,因此我建议你查看 Python 发行说明中的“新模块”、“不推荐使用的模块”和“已删除的模块”部分,这是了解 Python 标准重大变化的好方法,通过这种方式,你可以不断地将新功能和最佳实践整合到你的项目中 。

【几个被淘汰的Python库,请不要再用!】


推荐阅读