1 模块
一个.py文件构成一个模块,模块名就是.py文件名。一个模块是由python定义和声明组成的一个.py文件。模块的文件名保存在全局变量__name__中。
例如,有一个python文件名为fibo.py ,内容如下
Fibonacci numbers module
def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while b < n:
print b,
a, b = b, a+b
def fib2(n): # return Fibonacci series up to n
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
return result
现在, 在python交互环境中,引入该module
>>> import fibo
此时,已经引入了fibo.py 模块,通过模块名可以调用模块中定义的函数
>>> fibo.fib(1000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> fibo.fib2(100)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> fibo.__name__
'fibo'
如果需要经常用fib函数,方便起见,定义fib = fibo.fib
>>> fib = fibo.fib
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
每一个模块都有自己单独的符号表(symbol table),模块中所有的函数都把它作为全局符号表,共用这个符号表。所以不同模块之间不快出现符号冲突。