需要 Ruby 中的库使用 returns 库中的函数,例如 Python __import__()?

Require a library in Ruby using a function which returns the library, like Python __import__()?

通常在Ruby中,我们在导入内置库时会做这样的事情:

require "prime"
puts Prime.prime?(42)

在 Python 中,它看起来像这样:

import math
print(math.pi)

然而,还有一个函数可以在一行中完成此操作:

print(__import__("math").pi)

我想知道Ruby中是否存在这样的函数。

在Python中,模块的名字直接来源于文件系统路径。这允许它使用相同的名称同时导入和 return 模块。

然而,在Ruby中,这种联系不能假设。虽然在与文件名同名的文件中指定单个模块或 class 是一种很好的做法(在 snake_case 到 CamelCase 翻译之后),但这不是强制执行的,也不是总是给出的。

在Ruby中,文件只是代码的容器。您可以在单个文件中定义多个 classes 或模块,甚至可以重新打开现有的。因此,当需要(即加载)文件和 运行 其内容时,您无法知道结果将是单个模块还是 class。事实上,require 的 return 值是明确未定义的。

因此,总而言之,这在 Ruby 中是不可能的,因为在 Ruby 中未强制执行此工作所需的假设。