【python基础】import和from import的用法区别

在 Python 中,import 和 from import 是两种导入模块或模块中特定内容的语法,它们的用法和适用场景有所不同。以下是它们的详细对比:

1. import 的用法

功能:直接导入整个模块。

语法:import 模块名

特点:

导入后需要通过模块名前缀访问模块中的内容。

避免命名冲突(因为需要模块名前缀)。

代码可读性更强(明确知道内容来自哪个模块)。

示例代码:

import math

# 使用模块名前缀访问函数
print(math.sqrt(16))   # 输出: 4.0
print(math.pi)         # 输出: 3.141592653589793

适用场景:
需要多次使用模块中的多个函数或变量。

需要避免命名冲突(例如模块名和当前代码中的变量名重复)。

2. from import 的用法

功能:从模块中导入特定的内容(如函数、变量、类)。

语法:from 模块名 import 内容

特点:

直接使用导入的内容,无需模块名前缀。

代码更简洁,但可能引发命名冲突。

可以导入多个内容,例如:from math import sqrt, pi。

示例代码:

from math import sqrt, pi

# 直接使用导入的内容
print(sqrt(16))   # 输出: 4.0
print(pi)         # 输出: 3.141592653589793

扩展用法:
导入所有内容(不推荐):from math import *。

重命名导入的内容:from math import sqrt as square_root。

适用场景:
只需要模块中的少数内容。

希望简化代码,减少重复书写模块名。

3. import vs from import 的核心区别

特性importfrom import
访问方式需模块名前缀:模块名.内容直接使用:内容
命名冲突风险低(通过模块名前缀隔离)高(直接引入当前命名空间)
代码简洁性代码稍冗长代码更简洁
适用场景需要多次使用模块中的多个内容只需少量内容且无命名冲突风险

4. 注意事项

  • 避免使用 from module import *:

会导入模块中的所有内容,可能导致命名冲突。

降低代码可读性(难以确定内容来源)。

  • 别名(as)的灵活使用:
import numpy as np          # 导入模块并重命名
from math import sqrt as sq # 导入函数并重命名
  • 循环导入问题:

若模块间互相导入可能导致错误,需合理设计代码结构。

5. 示例对比

场景 1:导入整个模块

import datetime

now = datetime.datetime.now()  # 需要模块名前缀
print(now)

场景 2:导入特定内容

from datetime import datetime

now = datetime.now()  # 直接使用
print(now)

6. 总结

import:适合需要频繁使用模块中多个内容的场景,代码更安全、可读性更高。

from import:适合简化代码且明确知道导入内容不会冲突的场景。

最佳实践:

优先使用 import 提高代码可维护性。

少量且明确的导入可以用 from import。

避免 from module import *!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值