Python 之包(Package)与模(Module)

2019-04-14 16:10发布

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),模块中所有的函数都把它作为全局符号表,共用这个符号表。所以不同模块之间不快出现符号冲突。