6. 模块

  • 模块是包括Python定义和声明的文件。文件名就是模块名加上.py后缀。模块的模块名可以由全局变量__name__得到。

  • 每个模块都有自己私有的符号表,被模块内所有的函数定义作为全局符号表使用。因此,模块的作者可以在模块内部使用全局变量,而无需担心它与某个用户的全局变量意外冲突

1、作为脚本来执行模块

当你使用以下方式运行Python 模块时,模块中的代码便会被执行:

python fibo.py <arguments>

2、包

包通常是使用用“圆点模块名”的结构化模块命名空间。

  1. 用户可以每次只导入包里的特定模块,例如:
    import sound.effects.echo
    这样就导入了sound.effects.echo子模块。它必需通过完整的名称来引用。
    sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)

  2. from sound.effects import echo
    这样就加载了echo 子模块,并且使得它在没有包前缀的情况下也可以使用,所以它
    可以如下方式调用echo.echofilter(input, output, delay=0.7, atten=4)

  3. 还有另一种变体用于直接导入函数或变量:
    from sound.effects.echo import echofilter

    这样就又一次加载了echo 子模块,但这样就可以直接调用它的echofilter() 函
    数:echofilter(input, output, delay=0.7, atten=4)

​ 需要注意的是使用from package import item 方式导入包时,这个子项(item)
既可以是包中的一个子模块(或一个子包),也可以是包中定义的其它命名,像函
数、类或变量.

import item.subitem.subsubitem 这样的语法时,这些子项必
须是包,最后的子项可以是包或模块,但不能是前面子项中定义的类、函数或变量。

原文地址:https://www.cnblogs.com/BigMario/p/13577512.html