簡體   English   中英

python模塊出現在沒有的地方

[英]python modules appearing out of no where

今天有一件奇怪的事發生在我身上。當我進入dir(django) o / pi得到的時候,我試圖在www.shell.appspot.com上獲得一些appengine和Django。

['VERSION', '__builtins__', '__doc__', '__file__', '__name__', '__path__', 'conf', 'core', 'template', 'utils']

但我還是試過

from django import forms

而且令我驚訝的是,雖然dir()的o / p沒有恍惚狀態。出於好奇,我再次進入dir(django)並且o / pi得到了

['VERSION', '__builtins__', '__doc__', '__file__', '__name__', '__path__', 'conf', 'core', 'forms', 'oldforms', 'template', 'utils']

請注意這里的表格元素。任何人都可以向我解釋這些表格的來源嗎?

from package import module的語句加載(如果以前沒有加載過) package/module.py (首先加載package/__init__.py如果之前沒有加載它)並添加'module'作為條目包(以及當前范圍中的變量)。 因此dir(package)將在導入后顯示'module'條目,但不會在之前顯示。

一個包可以包含無限數量的模塊和子包(遞歸),因此加載包中的所有內容(只是為了填寫它的dir ! - )直到特定的模塊和子包被專門導入 - 所以,加載后者是“及時”,當他們第一次進口時(只有那時它們出現在paren包的dir )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM