uv pip install modular --index-url https://dl.modular.com/public/nightly/python/simple/
from python import python objectfrom python.bindings import python module builderimport mathfrom os import abort@exportfn pyinit_mojo_module() -> python object:try:var m = python module builder("mojo_module")m.def_function(factorial)("factorial", docstring="compute n!")return m.finalize()except e:return abort(python object)(string("error creating python mojo module : ", e))fn factorial(py_obj: python object) raises -> python object:var n = int(py_obj)var result = 1for i in range(1, n + 1):result *= ireturn result
import max.mojo.importerimport osimport sysimport timeimport mathsys.path.insert(0, "")import mojo_modulestart = time.time()print(mojo_module.factorial(10))end = time.time()print(f"time taken : {end - start} seconds for mojo")start = time.time()print(math.factorial(10))end = time.time()print(f"time taken : {end - start} seconds for python")
Python 原生实现耗时约 0.45 秒;
NumPy 实现耗时约 0.26 秒;
Mojo 实现仅耗时 0.01 秒。

