<分区>
在 Python 中,使用默认行为,如果你想使用加载包 package
中的函数 fun
你总是必须将它指定为属于一些新的/不同的调用它时的命名空间,即 package.fun()
。如果您已经安装但没有加载包,则根本无法调用该函数(据我所知)。
在 R 中,使用默认行为,如果你想使用加载包 package
中的函数 fun
你可以毫无问题地使用全局命名空间,即 fun()
调用 fun
。如果包已安装但未加载,您仍然可以通过指定新的/不同的命名空间来调用它,即 package::fun()
。
问题:如果一种从已安装包管理命名空间的方法比另一种更好,那么为什么两种编程语言不使用相同的默认行为?
我读过很多人说默认的 Python 命名空间行为很棒,但我从未见过使用 R 的人感到有必要捍卫 R 的默认行为,即使它与默认行为有很大不同Python,应该很棒。
也许区别在于没有 Python 版本的 CRAN?作为初学者,我真的不明白这有什么关系,但 CRAN 至少与包有关。虽然我认为并非所有 Bioconductor 上的 R 包也可以在 CRAN 上使用。
例子:作为更具体的例子:在Python中
import numpy
numpy.array()
有效,但都无效
import numpy
array()
也不
numpy.array()
有效。
在 R 中,两者都是
库(ggplot2)
ggplot()
和
ggplot2::ggplot()
工作。