需要一个Ruby库,使用一个返回库的函数,比如Python _uimport__;()?

需要一个Ruby库,使用一个返回库的函数,比如Python _uimport__;()?,ruby,require,Ruby,Require,通常在Ruby中,我们在导入内置库时会执行以下操作: require "prime" puts Prime.prime?(42) 在Python中,它将如下所示: import math print(math.pi) 但是,也有一个函数可以在一行中执行此操作: print(__import__("math").pi) 我想知道Ruby中是否存在这样的函数。在Python中,模块的名称直接来自文件系统路径。这允许它使用相同的名称同时导入和返回模块 然而,在Ruby中,不能假设这种连接。虽然在

通常在Ruby中,我们在导入内置库时会执行以下操作:

require "prime"
puts Prime.prime?(42)
在Python中,它将如下所示:

import math
print(math.pi)
但是,也有一个函数可以在一行中执行此操作:

print(__import__("math").pi)

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

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

然而,在Ruby中,不能假设这种连接。虽然在一个文件中使用和文件名相同的名称指定单个模块或类是一种好的做法(在snake_case到CamelCase的转换之后),但这并没有强制执行,也不总是给出

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


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

使用
\uuuuuu import\uuuu
在Python中创建一个单行程序是。。我同意,通常我不会写这样的东西。这个问题不是关于成为Pythonic,而是关于学习更多关于语言可能性的知识。