如果你退出python解释器并重新进入,你做的任何定义(变量和方法)都会丢失。因此,如果你想要编写一些更大的程序,最好使用文本编辑器先编辑好,然后运行这几个文件。这就是所谓的创建脚本。随着你的程序变得越来越长,你可能想要将它分成几个文件,这样更易于维护。你可能想在几个程序中使用你已经编写好的函数,而不用把函数定义拷贝到每个程序中。
为了支持这个功能,Python有种方法可以把你定义的内容放到一个文件中,然后在脚本或交互方式中使用。这样的文件称为模块;模块中的定义可以导入到其他模块或主模块(你可以在顶层和计算器中执行的脚本中访问的变量的容器模式)。
模块是包含Python定义和声明的文件。文件名就是模块名以扩展名.py
结尾,在模块内部,模块名(一个字符串)可以通过一个全局变量__name__
取得。例如,用你最喜欢的文件编辑器在当下目录创建一个名为fibo.py的文件,文件内容如下:
#斐波那契数列模块
def fig(n): #写出斐波那契数列从0到n
a, b= 0, 1
while b < n:
print(b, end = '')
a, b = b, a+b
print()
def fib2(n): #返回一个包含斐波那契数列从0到n的列表
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a + b
return result
现在进入Python解释器并使用下面的命令导入这个模块:
import fibo
在当前的符号表中,这并不导入fibo中定义的函数的名称,它只进入模块名称fibo。使用模块名称,您可以访问其中的函数:
fibo.fib(1000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
fibo.fib2(1000)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]
fibo.__name__
'fibo'
如果您打算经常使用函数,可以给其分配一个本地名称:
fib = fibo.fib
fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377