📜  导入间并使用 (1)

📅  最后修改于: 2023-12-03 15:09:30.414000             🧑  作者: Mango

导入、间接导入和使用

在编写程序时,有时候需要使用其他模块中的函数、类和变量。对于这些模块,可以使用导入语句将它们引入到当前代码中。

导入语句

有两种常见的导入语句:importfrom ... import ...

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 ... 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', ...]

这会列出模块中的所有函数、类和变量。