2016-06-23 74 views
2

我最近一直在Python中使用一些簡單的web應用程序的web.py。我以爲我明白了import語句,包和模塊的工作方式,但現在我有點困惑。導入時,包含具有相同名稱的類的Python模塊是如何工作的?

根據web.py的API,它說類application位於模塊web.application內。爲了使用這個類,本教程給出的例子,如

import web 
app = web.application(urls, globals()) 

什麼混淆我是,我如何創建一個使用web.applicationapplication類的一個實例。如果存在一類application名爲application web包內,從我瞭解到我希望有做一些這樣模塊:

web.application.application(urls, globals())

包 - >模塊 - > class

有人能澄清我的困惑嗎?這裏是一個鏈接到web.py API我參考http://webpy.org/docs/0.3/api#web.application

在此先感謝您的幫助!

+1

希望[這](http://docs.python-guide.org/en/latest/writing/structure/)幫助 – Rao

回答

2

application.py模塊的屬性已導入web程序包的__init__.py(通過__all__)。

web封裝的__init__.py,您有:

from application import * # referring to application.py 

而且在application.py

__all__ = [ 
    "application", "auto_application", 
    "subdir_application", "subdomain_application", 
    "loadhook", "unloadhook", 
    "autodelegate" 
] 

因此,在application.py發現在__all__指定的屬性現在都可以訪問直接從頂級進口 - web

您可以read morepackages__init__.py__all__

+0

啊,所以我可以方便地使用只需導入'web',類'application'就不用擔心'application'模塊本身在這個實例中? – bmcentee148

+0

是的,在這種情況下 –

+0

但是我怎麼去導入'application'模塊呢?如果我嘗試像'import web' - >'app = web.application.application()'這樣的錯誤,那麼在'application'類中沒有屬性'application'。如果我說'import web.application',而不是該類加載模塊。 – bmcentee148

相關問題