📅  最后修改于: 2023-12-03 15:09:30.414000             🧑  作者: Mango
在编写程序时,有时候需要使用其他模块中的函数、类和变量。对于这些模块,可以使用导入语句将它们引入到当前代码中。
有两种常见的导入语句:import
和 from ... import ...
。
标准的导入语句使用 import
关键字后面跟着模块名,例如:
import math
print(math.sqrt(25))
输出:
5.0
这里 math
是 Python 自带的标准模块之一,提供了许多数学函数,例如 sqrt
平方根函数。
可以通过 as
关键字给导入的模块起个别名(alias):
import math as m
print(m.sqrt(25))
输出同上。
还有一种常见的导入方式是使用 from ... import ...
语句。这种方式可以选择性地导入模块中的一些部分,例如:
from math import sqrt
print(sqrt(25))
输出同上。
也可以使用 from ... import *
导入模块中的所有内容(不建议这样做,因为容易引起命名冲突):
from math import *
print(sqrt(25))
输出同上。
在一个模块中,也可以导入另一个模块。这被称为“间接导入”(indirect import)。
举个例子,假设我们有一个 mymath
模块,其中定义了一个函数 add
:
# mymath.py
def add(a, b):
return a + b
然后我们在另一个脚本 main.py
中使用了这个函数:
# main.py
from mymath import add
print(add(2, 3))
输出:
5
在 main.py
中没有直接导入 math
模块,但间接导入了 mymath
模块。
值得注意的是,间接导入会比直接导入慢得多,因为它需要多次查找导入的模块。
一旦导入了模块,就可以使用其中定义的函数、类和变量了。
import math
print(math.pi)
radius = 5
print("半径为", radius, "的圆的周长是", 2 * math.pi * radius)
输出:
3.141592653589793
半径为 5 的圆的周长是 31.41592653589793
另外,如果要查看模块中包含的所有元素,可以使用内置函数 dir
:
import math
print(dir(math))
输出:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', ...]
这会列出模块中的所有函数、类和变量。