<p>当您创建文件<code>foo.py</code>时,您将创建一个python模块。执行<code>import foo</code>操作时,Python对该文件求值,并将它定义的所有变量、函数和类放入一个module对象中,并将其指定给名称<code>foo</code>。你知道吗</p>
<pre><code># foo.py
x = 1
def foo():
print 'foo'
</code></pre>
<p>你知道吗</p>
<pre><code>>>> import foo
>>> type(foo)
<type 'module'>
>>> foo.x
1
>>> foo.foo()
foo
</code></pre>
<p>使用<code>__init__.py</code>文件创建目录<code>bar</code>时,将创建一个python包。执行<code>import bar</code>操作时,Python对<code>__init__.py</code>文件进行求值,并将它定义的所有变量、函数和类放入一个模块对象中,并将其分配给名称<code>bar</code>。你知道吗</p>
<pre><code># bar/__init__.py
y = 2
def bar():
print 'bar'
</code></pre>
<p>你知道吗</p>
<pre><code>>>> import bar
>>> type(bar)
<type 'module'>
>>> bar.y
2
>>> bar.bar()
bar
</code></pre>
<p>在python<em>包</em>中创建python<em>模块</em>时(即在包含<code>__init__.py</code>的目录中以<code>.py</code>结尾的文件),必须通过此包导入这些模块:</p>
<pre><code>>>> # place foo.py in bar/
>>> import foo
Traceback (most recent call last):
...
ImportError: No module named foo
>>> import bar.foo
>>> bar.foo.x
1
>>> bar.foo.foo()
foo
</code></pre>
<p>现在,假设您的项目结构是:</p>
<pre><code>main.py
DataFunctions/
__init__.py
CashAMDSale.py
def AMDSale(): ...
GetValidAMD.py
def ValidAMD(GetValidAMD): ...
</code></pre>
<p>您的<code>main</code>脚本可以<code>import DataFunctions.CashAMDSale</code>并使用<code>DataFunctions.CashAMDSale.AMDSale()</code>,以及<code>import DataFunctions.GetValidAMD</code>并使用<code>DataFunctions.GetValidAMD.ValidAMD()</code>。你知道吗</p>