我今天在玩Python,嘗試創建自己的模塊。看起來我並不完全理解Python命名空間,我想知道是否有人能回答我關於它們的問題。有關Python命名空間和使用導入的問題
這裏是我做了什麼一個例子:我創建了一個名爲mytest的結構如下模塊
:
mytest/
....setup.py
....bin/
....docs/
....mytest/
........__init__.py
........test.py
....tests/
test.py包含一個方法如下:
def say_hello():
print "Hello"
我已經通過distutils安裝了mytest。使用'點子列表'我可以看到模塊已安裝。
所有確定,但現在我想要使用它。我創建了一個測試腳本moduletest.py:
from mytest import test
test.say_hello()
並且運行正常,打印'Hello'消息。我對此感到滿意,並開始使用導入模塊的其他方法。
下似乎都工作確定:
from mytest.test import say_hello
say_hello()
和:
import mytest.test as test
test.say_hello()
但是,以下將不起作用:
import mytest
test.say_hello()
和:
import mytest
mytest.test.say_hello()
和:
import mytest.test
test.say_hello()
任何人都可以解釋爲什麼你不能導入整個mytest的模塊,然後用你想要的部分,或者你爲什麼要別名測試(進口mytest.test作爲測試),以訪問它而不是隻導入mytest.test(導入mytest.test)?
我想我的理解有點偏離,但一些解釋會真的有所幫助。 謝謝!
這使得更多的意義!我認爲這個軟件包是模塊,並且是頂級命名空間。非常感謝! – steveYeah