python中from...import的使用

from...import可导入模块成员并直接使用,支持重命名和相对路径导入,但应避免命名冲突和滥用星号导入。

在 Python 中,from...import 是一种导入模块中特定部分内容的语法,可以让你直接使用模块中的函数、类或变量,而不需要加上模块前缀。相比 import module_name,它更灵活,也更方便。

基本语法

from 模块名 import 成员名

这个语句允许你从指定模块中导入一个或多个成员(如函数、类、变量),然后在代码中直接调用它们。

例如,有一个文件 math_utils.py

def add(a, b):
    return a + b

def multiply(a, b): return a * b

PI = 3.14159

在另一个文件中,你可以这样导入并使用:

from math_utils import add, PI

result = add(2, 3) # 直接调用,无需前缀 print(PI) # 直接使用变量

导入所有内容(慎用)

使用 from module import * 可以导入模块中的所有公开成员:

from math_utils import *

print(add(4, 5)) print(multiply(2, 6)) print(PI)

虽然方便,但这种方式容易造成命名冲突,降低代码可读性,不推荐在大型项目或生产代码中使用。

使用 as 进行重命名

如果导入的名称可能与现有变量冲突,可以用 as 给它起个别名:

from math_utils import add as my_add

total = my_add(10, 20)

这样即使当前作用域已有 add 变量,也不会冲突。

相对路径导入(常用于包内)

在包结构中,可以使用相对导入:

from . import module_name      # 导入同级模块
from ..package import func    # 导入上级包中的内容

注意:这种写法只能在包内部使用,不能作为主脚本直接运行。

基本上就这些。合理使用 from...import 能让代码更简洁,但要注意避免命名污染和循环导入问题。