我爲一個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