当前位置:首页 > 科技  > 软件

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

来源: 责编: 时间:2024-06-19 15:36:45 210观看
导读Python 3.12 引入了一些新的特性和改进,提升了开发体验和代码性能。以下是其中一些值得注意的新函数和改进:1. str.removeprefix() and str.removesuffix()虽然这些函数在 Python 3.9 就已引入,但它们在 Python 3.12 中

Python 3.12 引入了一些新的特性和改进,提升了开发体验和代码性能。以下是其中一些值得注意的新函数和改进:H3U28资讯网——每日最新资讯28at.com

H3U28资讯网——每日最新资讯28at.com

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

虽然这些函数在 Python 3.9 就已引入,但它们在 Python 3.12 中变得更加广泛使用。H3U28资讯网——每日最新资讯28at.com

  • **str.removeprefix(prefix)**:如果字符串以指定的前缀开头,则返回去掉该前缀的字符串。
  • **str.removesuffix(suffix)**:如果字符串以指定的后缀结尾,则返回去掉该后缀的字符串。
s = "HelloWorld"print(s.removeprefix("Hello"))  # 输出: Worldprint(s.removesuffix("World"))  # 输出: Hello

2. math.nextafter(x, y)

返回从 x 开始,到 y 方向的下一个浮点数。这个函数对需要精确控制浮点数计算的场景非常有用。H3U28资讯网——每日最新资讯28at.com

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

3. sys.orig_argv

这个属性允许你访问原始的命令行参数列表,包括解释器自身的参数,而不仅仅是脚本和传递给脚本的参数。H3U28资讯网——每日最新资讯28at.com

import sysprint(sys.orig_argv)

4. functools.cache_clear()

在 Python 3.12 中,functools.cache_clear() 方法被添加到 functools.lru_cache 修饰器中,用于清除缓存。H3U28资讯网——每日最新资讯28at.com

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 类型提示方法的返回类型为类实例本身。H3U28资讯网——每日最新资讯28at.com

from typing import Selfclass MyClass:    def my_method(self) -> Self:        return self

6. contextlib.aclosing

类似于 contextlib.closing 但用于异步生成器对象。H3U28资讯网——每日最新资讯28at.com

import contextlibclass 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 iasync def main():    async with contextlib.aclosing(AsyncGenerator()) as agen:        async for item in agen:            print(item)# 运行异步主函数import asyncioasyncio.run(main())

7. itertools.pairwise()

产生一对连续元素的迭代器。H3U28资讯网——每日最新资讯28at.com

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

8. zoneinfo 模块改进

对时区信息进行了增强,更好地支持时间相关操作。H3U28资讯网——每日最新资讯28at.com

from zoneinfo import ZoneInfofrom datetime import datetimedt = datetime(2024, 6, 14, tzinfo=ZoneInfo("America/New_York"))print(dt)

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

本文链接:http://www.28at.com/showinfo-26-94851-0.html赶紧试试 Python 3.12 吧,真的好用

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 消灭代码中的 if :请求参数校验的优雅之道

下一篇: 十分钟了解 Golang 泛型

标签:
  • 热门焦点
  • 2023年Q2用户偏好榜:12+256G版本成新主流

    3月份的性能榜、性价比榜和好评榜之后,就要轮到2023年的第二季度偏好榜了,上半年的新机潮已经过去,最明显的肯定就是大内存和存储的机型了,另外部分中端机也取消了屏幕塑料支架
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java的NIO库提供了内存映射文件的支持,它可以将文件映射到内存中,从而可以更快地读取和写入文件数据。本文将对Java内存映射文件进行详细的介绍和演示。内存映射文件概述内存
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 得物宠物生意「狂飙」,发力“它经济”

    作者|花花小萌主近日,得物宣布正式上线宠物鉴别,通过得物App内的&ldquo;在线鉴别&rdquo;,可找到鉴别宠物的选项。通过上传自家宠物的部位细节,就能收获拥有专业资质认证的得物鉴
  • 华为HarmonyOS 4升级计划公布:首批34款机型今日开启公测

    8月4日消息,今天下午华为正式发布了HarmonyOS 4系统,在更流畅的前提下,还带来了不少新功能,UI设计也有变化,会让手机焕然一新。华为宣布,首批机型将会在
  • 英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    据10 月 30 日外媒 TheVerge 消息报道,英特尔 Xe HPG Arc Alchemist 的正面实被曝光,不仅拥有 512 EU 版显卡,还拥有 128EU 的单风扇版本。另外,这款显卡 PCB
Top