网易首页 > 网易号 > 正文 申请入驻

python基础import、from、as关键字详解

0
分享至

在 Python 中,import、from 和 as 是用于模块(module)和包(package)导入的核心关键字。它们让你能够复用他人或自己编写的代码,是构建大型项目、使用第三方库的基础。#python#

下面从基本语法、使用场景、区别对比、最佳实践四个维度为你详细解析。

一、核心概念前置

  • 模块(Module):一个 .py 文件就是一个模块,如 math.py。
  • 包(Package):包含 __init__.py 的文件夹,可组织多个模块,如 numpy/。
  • 标准库:Python 自带的模块(如 os, json, datetime)。
  • 第三方库:通过 pip install 安装的包(如 requests, pandas)。
✅ 所有导入操作的本质:将其他文件中的代码加载到当前命名空间中使用。
二、三种基本导入方式详解

1️⃣import 模块名

作用:导入整个模块,使用时需加前缀。

import mathprint(math.sqrt(16))      # 4.0print(math.pi)            # 3.1415926...

优点

  • 命名空间清晰,避免名称冲突
  • 明确知道函数来自哪个模块

缺点

  • 调用时需写完整路径(稍长)
底层:math 成为当前命名空间的一个对象,其属性是模块内的函数/变量。

2️⃣from 模块名 import 名称

作用:从模块中导入指定名称(函数、类、变量等),直接使用,无需前缀

from math import sqrt, piprint(sqrt(16))  # 4.0print(pi)        # 3.1415926...

优点

  • 调用简洁,代码更短

缺点

  • 可能引发命名冲突(如 from os import path 和 from sys import path)
  • 不清楚 sqrt 来自哪个模块(降低可读性)
⚠️ 绝对禁止: python 编辑 from math import * # 污染命名空间!不要用!

3️⃣import ... as 别名或from ... import ... as 别名

作用:为模块或成员起一个别名(alias),简化调用或避免冲突。

场景 1:模块别名(最常用)

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdata = np.array([1, 2, 3])df = pd.DataFrame(data)plt.plot(data)

为什么流行?

  • 社区约定(np, pd, plt 已成标准)
  • 避免长名字(如 matplotlib.pyplot → plt)

场景 2:成员别名

from math import sqrt as square_rootprint(square_root(25))  # 5.0

适用场景

  • 名称冲突:from module1 import func 和 from module2 import func → 改名为 func1, func2
  • 提高可读性:json_loads vs loads
三、导入语法全集(对比表)

语法

示例

使用方式

适用场景

import 模块

import json

json.loads(...)

通用、安全、推荐默认使用

from 模块 import 成员

from json import loads

loads(...)

频繁使用某几个函数时

import 模块 as 别名

import numpy as np

np.array(...)

第三方库标准用法

from 模块 import 成员 as 别名

from datetime import datetime as dt

dt.now()

避免冲突或简化名称

❌ from 模块 import *

from math import *

sqrt(...), pi

禁止!污染命名空间

四、高级用法与注意事项

✅ 1.导入包(含子模块)

# 导入整个包import requests# 导入子模块from urllib import requestfrom urllib.parse import urlparse

✅ 2.相对导入(仅限包内)

在包内部模块之间导入(用 . 表示当前目录,.. 表示上级):

# mypackage/submodule.py 中from . import sibling_module      # 同级from ..utils import helper        # 上级包的 utils 模块
⚠️ 相对导入只能在包内使用,不能在脚本直接运行时使用。

✅ 3.动态导入(不常用)

# 使用 importlib(高级场景)import importlibmath = importlib.import_module('math')
五、常见误区与最佳实践

❌ 误区 1:import会重复执行模块代码?

→ 不会! Python 会缓存已导入模块(在 sys.modules 中),多次 import 只加载一次。

❌ 误区 2:from ... import ...性能更好?

→ 没有性能差异。两者最终都访问同一对象,只是命名空间不同。

✅ 最佳实践:

建议

优先用 import 模块

保持命名空间清晰,尤其在大型项目中

第三方库用标准别名

np, pd, plt, tf, sk 等

避免 import *

会导致难以调试的命名冲突

导入语句放文件顶部

PEP 8 规范:import 应位于文件开头(__future__ 之后)

按组排序导入

标准库 → 第三方库 → 本地模块,每组空一行

import osimport sysimport numpy as npimport requestsfrom myproject import utils
六、实际项目中的典型用法

Web 开发(Flask)

from flask import Flask, request, jsonifyimport sqlite3 as db

数据分析

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_split

自动化脚本

import osimport shutilfrom datetime import datetime
七、总结:一句话掌握精髓

import math → 用 math.sqrt(),安全清晰from math import sqrt → 用 sqrt(),简洁但慎用import numpy as np → 用 np.array(),社区标准永远不要 from xxx import *!



特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国亮出〈波茨坦公告〉王炸!日本若再挑衅,领土范围将成必答题

中国亮出〈波茨坦公告〉王炸!日本若再挑衅,领土范围将成必答题

视觉攻城狮
2025-11-17 00:09:15
战韩国双响!22岁国足红星女友曝光 现场观战+甜蜜互动 私照绝美

战韩国双响!22岁国足红星女友曝光 现场观战+甜蜜互动 私照绝美

我爱英超
2025-11-16 10:06:05
奇迹诞生:补时绝杀,大黑马绝境翻盘,杀入世界杯附加赛

奇迹诞生:补时绝杀,大黑马绝境翻盘,杀入世界杯附加赛

足球狗说
2025-11-17 00:07:54
《凤凰台上》的播出告诉观众:中年古偶真的没市场了!

《凤凰台上》的播出告诉观众:中年古偶真的没市场了!

海绵宝宝的心事
2025-11-15 12:16:02
这是我见过的五官最精致的女性,一脸福相,以后会贵不可言

这是我见过的五官最精致的女性,一脸福相,以后会贵不可言

手工制作阿歼
2025-10-28 14:03:28
街头抓奸!原配抓渣男车内出轨丰满小三,引发围观现场视频曝光!

街头抓奸!原配抓渣男车内出轨丰满小三,引发围观现场视频曝光!

新动察plus
2024-07-22 10:28:08
比福建舰更牛力量出现?军事专家项立刚预言,相当于100艘航母

比福建舰更牛力量出现?军事专家项立刚预言,相当于100艘航母

晓徙娱乐
2025-11-13 13:46:16
全运会最新金牌榜,浙江迫近山东,福建河南亮眼,游泳现“双铜”

全运会最新金牌榜,浙江迫近山东,福建河南亮眼,游泳现“双铜”

第五才子
2025-11-16 23:42:52
“苏贵元”陈坚雄去世三年,遗孀黄敏离开广州,谈再婚子女这样说

“苏贵元”陈坚雄去世三年,遗孀黄敏离开广州,谈再婚子女这样说

丁丁鲤史纪
2025-11-01 08:04:32
蒋经国去世前,为何不传位给自己的儿子,而是表里不一的李登辉?

蒋经国去世前,为何不传位给自己的儿子,而是表里不一的李登辉?

芳芳历史烩
2025-10-19 15:46:54
高市早苗拒不认错,日本通知中国,不解决问题,就驱逐中方外交官

高市早苗拒不认错,日本通知中国,不解决问题,就驱逐中方外交官

大白话瞰世界
2025-11-13 13:21:29
中国与俄罗斯投弃权票

中国与俄罗斯投弃权票

澎湃新闻
2025-11-15 14:02:04
日本政府正式宣布!11 月 11 日日本政府官宣 2026 年上调签证费

日本政府正式宣布!11 月 11 日日本政府官宣 2026 年上调签证费

南权先生
2025-11-13 15:52:13
古天乐回应“不用智能手机”传闻

古天乐回应“不用智能手机”传闻

大象新闻
2025-11-16 13:34:13
乱套了!全运会乒乓球,朱雨玲1-4无缘奖牌,陈梦怒吼摘得铜牌

乱套了!全运会乒乓球,朱雨玲1-4无缘奖牌,陈梦怒吼摘得铜牌

阿鰤科普记录
2025-11-16 23:31:39
苹果计划将iPhone发布调整为固定的秋季与春季两次的模式

苹果计划将iPhone发布调整为固定的秋季与春季两次的模式

cnBeta.COM
2025-11-16 22:27:19
笑死!山航还是太权威了,网友:差点端着饭下飞机

笑死!山航还是太权威了,网友:差点端着饭下飞机

夜深爱杂谈
2025-11-15 21:49:27
为何说梅毒病是最脏的病?医生详细讲解,隔着屏幕都感到头皮发麻

为何说梅毒病是最脏的病?医生详细讲解,隔着屏幕都感到头皮发麻

小舟谈历史
2025-10-15 09:30:14
娃哈哈大战终结!离职41天后,宗馥莉博弈失败,无奈选择低头妥协

娃哈哈大战终结!离职41天后,宗馥莉博弈失败,无奈选择低头妥协

吭哧有力
2025-10-24 12:02:29
“房产税”要落实了?原财政部长作出回应,有2类人或要叫苦了

“房产税”要落实了?原财政部长作出回应,有2类人或要叫苦了

墨兰史书
2025-11-16 07:05:03
2025-11-17 01:35:00
我不叫阿哏
我不叫阿哏
分享有趣、有用的故事!
212文章数 6029关注度
往期回顾 全部

科技要闻

雷军,怒了!刚刚连发多条微博

头条要闻

央视:若高市早苗死不悔改 日本将万劫不复

头条要闻

央视:若高市早苗死不悔改 日本将万劫不复

体育要闻

最佳新秀候选!2028美国男篮有他一个位置

娱乐要闻

CEO爆料肖战《藏海传》狂赚几十亿!

财经要闻

房源暗中调价 央企举报广州国资房企

汽车要闻

"冰彩沙"全配齐 红旗HS6 PHEV预售17.88万起

态度原创

家居
房产
健康
亲子
教育

家居要闻

现代简逸 寻找生活的光

房产要闻

首开狂卖6.68亿!海口这个顶级教育红盘,引爆海口楼市!

血液科专家揭秘白血病七大误区

亲子要闻

一分钟教你判断孩子的咳嗽代表什么

教育要闻

妈妈晒高二儿子吃宵夜,女网友眼睛看直了:这颜值,小姑娘遭殃了

无障碍浏览 进入关怀版