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']
上一篇: C++/C学习