我为一个Python 3项目中vehicle.py
是主要的脚本和文件夹stats
以下文件夹结构被视为一个包含几个模块:导入功能从Python 3个的模块
的cars
模块定义了如下功能:
def neon():
print('Neon')
print('mpg = 32')
def mustang():
print('Mustang')
print('mpg = 27')
使用Python 3,我可以从vehicle.py
内访问的功能的每个模块中的FO llows:
import stats.cars as c
c.mustang()
然而,我想直接访问每一个模块中定义的功能,但我收到错误时做此:
import stats as st
st.mustang()
# AttributeError: 'module' object has no attribute 'mustang'
我还试图放置__init__.py
文件中的stats
用下面的代码文件夹:
from cars import *
from trucks import *
,但我仍然收到错误:
import stats as st
st.mustang()
# ImportError: No module named 'cars'
我试图使用相同的方法与NumPy如:
import numpy as np
np.arange(10)
# prints array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
我怎么能直接在模块建立在Python 3包像NumPy的访问功能?
的人说,'__init __ py'是强制性的,以创建一个包没有听说过[隐。命名空间包](https://www.python.org/dev/peps/pep-0420/)呢;这就是为什么你当前的项目结构不会在'import stats.cars as c'上引发错误。 – user2357112
@ user2357112我知道Python 3中的隐式名称空间,但它仍然没有照顾我所看到的错误。 – wigging