python中导入模块或包语句_Python中导入模块或包语句

本文探讨了Python中`from ... import *`的使用,指出其可能带来的问题,包括导入的不明确性和影响代码可读性。强调了明确导入和遵循PEP 328的重要性,以避免潜在的NameError和命名冲突。
摘要由CSDN通过智能技术生成

d10abd9db5f26c8d225b42ff8ba64c7a.png

这篇文章作者主要讨论了Python的from import *和from import *,它们怎么执行以及为什么使用这种语法(也许)是一个坏主意.

从一个模块导入全部

from import * means意味着“我希望能访问中我有权限访问的全部名称”.例如以下代码something.py:

677343a3ecfc0786e13e391aa47073b8.png

在Python解释器中,我们可以执行from something import *,然后看到如下的内容:

17f7cb3933ae8cc660bccb94bd7dcac9.png

from something import *从something中导入了除了以_开头名称外的其他所有名称,按照规范,_开始的名称是私有的所以未被导入.

嗯,不是特别糟!还有什么?

上面没提到__all__是什么.__all__是一个字符串列表,指定了当from import *被使用时,模块(或者如后文会提到的包)中的哪些符号会被导出.如果我们不定义__all__(我们在上面的something.py就没定义),im

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>