定义

将所定义的方法或变量存放在.py文件中,为一些脚本或解释器实例使用,这个.py文件被称为模块

import语句

想使用python源文件,秩序加上import语句,当解释器遇到import语句且模块在当前搜索的路径中,就会被导入。

创建a.py文件

def add(a,b):
	print(a+b)
	return

创建a.py文件引用a.py文件

import a
a.add(1,2)
# 运行b.py文件,结果3

from import语句

python中from语句可以从模块中导入一个指定部分到当前空间中,语法:

from  xxx import xxx
例如,要导入模块fibo的fib函数:
from fibo import fib , fib2	# 斐波那契(fibonacci)
fib(500)
# 结果:1 1 2 3 5 8 13 21 34 55 89 144 233 377

模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。这些代码只有在第一次被导入时才会被执行。
每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用。所以,模块的作者可以放心大胆的在模块内部使用这些全局变量,而不用担心把其他用户的全局变量搞混。从另一个方面,当你确实知道你在做什么的话,你也可以通过 modname.itemname 这样的表示法来访问模块内的函数。模块是可以导入其他模块的。在一个模块(或者脚本,或者其他地方)的最前面使用 import 来导入一个模块,当然这只是一个惯例,而不是强制的。被导入的模块的名称将被放入当前操作的模块的符号表中。

标准模块

Python 本身带着一些标准的模块库,有些模块直接被构建在解析器里,这些虽然不是一些语言内置的功能,但是他却能很高效的使用,这些组件会根据不同的操作系统进行不同形式的配置
dir()函数:python内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回

__name__属性

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

if __name__ == '__main__':
   print('程序自身在运行')
else:
   print('我来自另一模块')
# 结果:$ python using_name.py
       # 程序自身在运行
        # $ python
>>> import using_name
我来自另一模块