是否可以手动创建并加载命名空间环境foo
(没有做出实际的foo
包),这样我们就可以使用双冒号运算符foo::test
访问该环境中的对象?
The attach
函数将列表或环境附加到搜索路径:
foo <- list(test=123)
attach(foo)
get("test", "foo")
但这确实使用户可以访问foo::test
明显地。
事实证明,这在很大程度上没有记录的情况下是可能的namespace
包裹:
library(namespace)
ns <- makeNamespace("myNamespace")
assign("test", 7, env=ns)
setNamespaceInfo(ns, "exports", as.environment(list(test="test")))
print(myNamespace::test)
但不确定这有多安全。例如sessionInfo
不再工作了:
> sessionInfo()
Error in if (pkgpath == "") { : argument is of length zero
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)