模块化:Mojo 24.2 的新功能:Mojo Nightly、增强的 Python 互操作性、开源标准库等

模块化:Mojo 24.2 的新功能:Mojo Nightly、增强的 Python 互操作性、开源标准库等

💡 原文英文,约2100词,阅读约需8分钟。
📝

内容提要

上周我们发布了MAX 24.2版本,详细介绍了MAX 24.2的新功能。本文将深入介绍Mojo SDK 24.2的所有新功能,特别是针对Python开发者。新功能包括Mojo标准库的开源、DynamicVector更名为List、List支持不同类型的元素、math模块新增ulp()函数、Mojo与Python的互操作性、新的核心语言特性等。此外,还提供了代码示例和Jupyter Notebook供参考。

🔎

延伸解读

标准库开源与社区贡献

Mojo 标准库现已开源,源代码和贡献指南可在 GitHub 上找到。这意味着开发者可以直接查看标准库实现,并参与贡献。同时,Mojo 公共库新增了 Nightly 分支,与每日构建同步,所有拉取请求应提交到该分支。此外,还提供了 Nightly 版 Visual Studio Code 扩展,但需注意同一时间只能启用一个 Mojo 扩展,若使用 Nightly 扩展需禁用发布版扩展。

List 更名与类型灵活性

DynamicVector 已更名为 List,其使用方式与 Python 列表类似,支持 append、pop_back 等操作,并且可以容纳任何实现了 CollectionElement 特性的 Mojo 类型。例如,List 可以存储不同大小的 Tensor。这一变化降低了 Python 开发者的学习成本,使代码更直观。

Python 互操作性增强

Mojo 现在支持向 Python 函数传递关键字参数,例如可以直接使用 plt.figure(figsize=(10, 6)),而无需先创建图形再设置尺寸。这简化了调用 Python 库(如 Matplotlib)的代码,提升了与 Python 生态集成的便利性。

核心语言特性改进

Mojo 24.2 引入了结构体隐式符合特性,只要实现了相应方法,结构体自动符合特性,无需显式声明。同时支持可变关键字参数 **kwargs,允许函数接受任意数量的关键字参数。这些特性使代码更简洁灵活,但官方仍建议在可能时显式列出结构体符合的特性。

❓

Q&A

Mojo 24.2的新功能有哪些?

Mojo 24.2的新功能包括开源的Mojo标准库、DynamicVector更名为List、math模块新增ulp()函数、增强的Python互操作性、新的核心语言特性等。

Mojo标准库现在是什么状态?

Mojo标准库现在已开源,源代码和贡献指南可以在GitHub上找到。

如何在Mojo中使用List?

List在Mojo中类似于Python的列表,支持不同类型的元素,可以使用append和pop_back等方法。

ulp()函数的用途是什么?

ulp()函数用于计算浮点数之间的最小精度差,帮助定义比较浮点数的容差。

Mojo与Python的互操作性有什么新特性?

Mojo现在支持向Python函数传递关键字参数,使得使用Python模块更加方便。

Mojo 24.2中有哪些新的核心语言特性?

新核心语言特性包括结构体隐式符合特性和支持可变关键字参数(**kwargs)。

🏷️

标签

➡️

继续阅读