如何只导入所需的方法,而不导入Ruby中的所有库
我想使用fileutils中的如何只导入所需的方法,而不导入Ruby中的所有库,ruby,Ruby,我想使用fileutils中的cd方法: require "fileutils" 而不是做: FileUtils.cd(home/user/Documents) 我想这样做: cd(home/user/Documents) 我可以用Ruby做这样的事情吗 在Python中,我们可以执行以下操作: from random import randint print(randint(1,7)) 而不是: import random print(random.randint(1,7)) Rub
cd
方法:
require "fileutils"
而不是做:
FileUtils.cd(home/user/Documents)
我想这样做:
cd(home/user/Documents)
我可以用Ruby做这样的事情吗
在Python中,我们可以执行以下操作:
from random import randint
print(randint(1,7))
而不是:
import random
print(random.randint(1,7))
Ruby可能的副本不是Python,因为每次使用Python:P时我都会痛苦地被提醒。您可以通过
require“fileutils”获取cd(“主页/用户/文档”)
;包含FileUtils
,但我不建议您使用它(它所做的是使当前对象继承自FileUtils
模块)。@Amadan还以相同的方式使所有其他FileUtils方法可用。@SergioTulentsev:确实如此。这一部分是对“我想做这样的事情:cd(home/user/Documents)
”的回应,我本可以说得更清楚(尽管含义相当明确,因为我给出的代码片段没有以任何方式引用cd
)@user1934428:在Python中,整个模块都是执行的,但只有注明的实体才能导入使用。在模块的代码中,一切仍然可用。Python的import语句并不意味着只加载注意到的函数;它只影响哪些对象可用于当前命名空间。这与在Ruby中使用private
标记类内部可用但外部不可用的方法类似,尽管目的和域不同(Ruby这样做是为了保护对象完整性,Python这样做是为了保护导入环境免受污染)。