坑啊!为什么不建议用 from xxx import *!

本文探讨了Python中两种常见的模块导入方式:import语句和from...import语句。文章详细解释了为何推荐使用import语句而非from...import*的方式,并通过实例说明了后者可能导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a39cab317428f597662706234ed516b7.png

人生苦短,菜鸟学Python!

大家好,我是菜鸟哥,为啥我经常跟粉丝讲不要用from xx import * ,看起来很酷很省事,其实坑很多,今天我们就来说说。

b9382f5e59a93c32e455ef281046bbc4.png
▲图片作者:Andrew Zhu

其中导入模块有两种常用方法 :import 语句和 from … import 语句。


1、import语句

import语句会导入指定模块中所有的方法,当你需要大量使用该模块中的不同方法时,这种方式很适合你。

import 模块名

此时,当你使用该模块中的方法,则需要在方法名前面加上模块名的前缀。

import math
math.pow(2,4)

2、from…import语句

如果你只需要使用某个模块中的少数方法,推荐使用from…import语句导入相应的模块。

from 模块名 import 方法名

此时,当你调用模块中的方法时,就不需要在方法名前面添加模块名的前缀。

from math import pow, log
pow(2,4)
log(32,2)

有时候,当你导入的模块名太长,可为它指定一个别名。

1666ecde706a5c867a4596d8519e8f69.png

别名是模块的另一个名称,类似于外号,语法格式如下所示。

import pandas as pd

我们导入了pandas模块,并指定其别名为pd。


如果使用from 模块名 import *,则表示导入该模块中所有的方法。

from math import *
pow(2,4)

注:使用单下划线“_”开头的模块变量或者函数是受保护的,在使用 from xxx import * 语句从模块中导入时这些变量或者函数不能被导入。

但是,这种用法有两个坑。第一点,正常我们只需看一下文件开头的import语句,就能清楚地知道Python代码中使用了哪些类,干净整洁,如果使用 from xxx import * 语句则会丢失该优点。

第二个坑,便是能引发名称方面的困惑。假如现在Python代码中要用到两个模块kxpython1kxpython2,而这两个模块都有test()函数,如果正常import语句并不会出现什么问题。

import kxpython1
import kxpython2

kxpython1.test(123456)
kxpython2.test(123456)

但是如果使用from xxx import *语句,就芭比Q了。

在交互式环境中输入如下命令:

from kxpython1 import *
from kxpython2 import *

test(123456)

你猜这时候,test()函数用的是哪个模块???

所以,自然会报错了。

df745a5d3f520e28d64a5847ebe30d20.jpeg

这就是我们不建议用 from xxx import * 的原因。虽然我们认为,两个模块有同名导出本身也许是个小概率事件,但能避免还是尽量避免。省得我们最后写Python代码10分钟,找BUG花了一整天。

人生苦短,我学Python!后续我们会继续分享更多的Python基础知识点。

 
 
 
 
 
 
推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看B站我的视频!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值