[提问]如何在一个包内一次性加载模块

2021-04-20 20:45:57 +08:00
 leverestfish

小白提问,不知道怎么搜索,求轻喷。 比如经常要用 sys,os,re 等模块,包内的每个文件基本都需要 import 他们,有没有能够一劳永逸地 import 的方法?

我目前想到的是,在 __init__.py 中加载,然后包中每个模块开头都 from mypackage import * 来实现?这样有什么危害吗?

感觉自己一直对 import 还有命名空间这一套东西比较迷惑,有比较好的解答文章也恳请赐教一个链接之类的~

1634 次点击
所在节点    Python
3 条回复
ClericPy
2021-04-20 21:48:16 +08:00
显式优于隐式... 尽量不要用 *, 有 IDE 自动补全和自动导入, 要啥一劳永逸. 至于每个文件都要导入他们, 可以学一点设计模式方面的知识, 同类 utils 放在一起

至于命名空间或者其他入门文章, 看看 Real Python 吧, 上面从入门到熟练应有尽有, 如果更喜欢信息量大的, 可以看看 Cookbook 或者 Fluent Python

Namespaces and Scope in Python – Real Python - https://realpython.com/python-namespaces-scope/
lakechan96
2021-04-21 00:20:19 +08:00
https://docs.python.org/3/library/site.html

`This module is automatically imported during initialization.`
IgniteWhite
2021-04-21 01:14:45 +08:00
import * 据说是 PEP8 不推荐的用法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771989

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX