我是通过什么numpy.random
可戳进口究竟(以及为什么)我可以通过numpy.random访问所有的NumPy?
from numpy import random
与dir(random)
后,并注意到,有范围,这似乎等同于顶层模块的变量np
,例如
In[1]: from numpy import random
In[2]: random.np.fft.fft2
Out[2]: <function numpy.fft.fftpack.fft2>
In[3]: random.np.random.np.fft.np # not the same for fft
AttributeErrorTraceback (most recent call last)
<ipython-input-78-a64e04c36c80> in <module>()
----> 1 random.np.random.np.fft.np
AttributeError: module 'numpy.fft' has no attribute 'np'
这对我来说似乎有点奇怪......或者至少不是我以前在其他Python模块中见过的东西。看起来我可以通过random
中的np
变量访问import numpy as np
。
我想看看它是如何可用的子模块,所以我在源代码中查找numpy/random/__init__.py
,并没有看到它是如何提供的。我也看过numpy/random/info.py
在__all__
,但无法找到它如何暴露给模块。
顶级模块如何提供给numpy.random
,并且有没有动力使它可用?
您找到它了!比我更直接地表达,谢谢! –