欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习笔记(八)模块与函数库

程序员文章站 2022-03-05 13:09:18
...

模块

如果从Python解释器退出并再次输入,您所做的定义(函数和变量)将丢失。因此,如果要编写一个稍长的程序,最好使用文本编辑器为解释器准备输入,并以该文件作为输入运行它。这称为创建脚本。随着你的程序越来越长,你可能想把它分成几个文件,以方便维护。你可能还想使用一个你在几个程序中编写的方便的函数,而不必将它的定义复制到每个程序中。

为了支持这一点,Python有一种方法将定义放在一个文件中,并在脚本中或在解释器的交互实例中使用它们。这样的文件称为模块;模块中的定义可以导入到其他模块或主模块(您可以在顶层和计算器中执行的脚本中访问的变量的容器模式)。

模块是一个包含Python定义和语句的文件。文件名就是模块名以 扩展名.py 结尾.在模块内部,模块名 (一个字符串) 可以通过一个全局变量 __name__取得.例如,用你最喜欢的文本编辑器在当前目录下创建一个名为fibo.py的文件,文件内容如下:

# Fibonacci numbers module

def fib(n):    # write Fibonacci series up to n
    a, b = 0, 1
    while b < n:
        print(b, end=' ')
        a, b = b, a+b
    print()

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解释器,并使用以下命令导入此模块:

>>> 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(100)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> fibo.__name__
'fibo'

from/import语句

from 模块名称 import 对象名

命名空间与dir()函数

  • dir函数在无参数时会找出当前作用域已定义的名称。
>>> import math
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'fibo', 'math']
  • dir函数在有参数时,用来查看某个模块已定义的函数。
>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']



相关标签: Python