文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

赶紧试试 Python 3.12 吧,真的好用

2024-11-29 21:10

关注

1. str.removeprefix() and str.removesuffix()

虽然这些函数在 Python 3.9 就已引入,但它们在 Python 3.12 中变得更加广泛使用。


s = "HelloWorld"
print(s.removeprefix("Hello"))  # 输出: World
print(s.removesuffix("World"))  # 输出: Hello

2. math.nextafter(x, y)

返回从 x 开始,到 y 方向的下一个浮点数。这个函数对需要精确控制浮点数计算的场景非常有用。

import math

print(math.nextafter(1.0, 2.0))  # 输出: 1.0000000000000002
print(math.nextafter(1.0, 0.0))  # 输出: 0.9999999999999999

3. sys.orig_argv

这个属性允许你访问原始的命令行参数列表,包括解释器自身的参数,而不仅仅是脚本和传递给脚本的参数。

import sys

print(sys.orig_argv)

4. functools.cache_clear()

在 Python 3.12 中,functools.cache_clear() 方法被添加到 functools.lru_cache 修饰器中,用于清除缓存。

from functools import lru_cache

@lru_cache(maxsize=32)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# 清除缓存
fibonacci.cache_clear()

5. 新的 typing 模块改进

Python 3.12 对 typing 模块进行了多项改进,包括更好的类型推断和新的类型提示功能。例如,可以使用 Self 类型提示方法的返回类型为类实例本身。

from typing import Self

class MyClass:
    def my_method(self) -> Self:
        return self

6. contextlib.aclosing

类似于 contextlib.closing 但用于异步生成器对象。

import contextlib

class AsyncGenerator:
    async def __aenter__(self):
        print("Entering")
        return self

    async def __aexit__(self, exc_type, exc, tb):
        print("Exiting")

    async def __aiter__(self):
        for i in range(5):
            yield i

async def main():
    async with contextlib.aclosing(AsyncGenerator()) as agen:
        async for item in agen:
            print(item)

# 运行异步主函数
import asyncio
asyncio.run(main())

7. itertools.pairwise()

产生一对连续元素的迭代器。

import itertools

for pair in itertools.pairwise([1, 2, 3, 4]):
    print(pair)
# 输出: (1, 2), (2, 3), (3, 4)

8. zoneinfo 模块改进

对时区信息进行了增强,更好地支持时间相关操作。

from zoneinfo import ZoneInfo
from datetime import datetime

dt = datetime(2024, 6, 14, tzinfo=ZoneInfo("America/New_York"))
print(dt)

这些新特性和改进使得 Python 3.12 更加强大和易用,为开发者提供了更多工具来编写高效、可维护的代码。建议大家尽早升级并尝试这些新特性。

来源:老猫coder内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯