Python相同模块名约定

2024-10-02 20:30:12 发布

您现在位置:Python中文网/ 问答频道 /正文

关于这个问题:
python: Two modules and classes with the same name under different packages

一个包中的所有模块是否应该具有唯一的名称,而不考虑嵌套?PEP8和PEP423似乎没有解决这个问题。在


Tags: 模块andthename名称modulespackageswith
2条回答

不,没有要求不同级别的名称必须不同。每个级别都是一个单独的命名空间。如果foo.utils和{}在您的项目中有意义,那么就这样做。在

例如,Python标准库有^{}和{a2},和^{},以及{a4},等等:

$ ls ~/Development/Library/cpython/Lib/**/*.py  | grep -v __ | grep -v test_ | xargs basename | sort | uniq -c | grep -v '  1 ' | sort
   2 abc.py
   2 ascii.py
   2 client.py
   2 connection.py
   2 constants.py
   2 dump.py
   2 errors.py
   2 filelist.py
   2 handlers.py
   2 log.py
   2 message.py
   2 parse.py
   2 parser.py
   2 process.py
   2 queues.py
   2 server.py
   2 spawn.py
   2 text.py
   2 tree.py
   3 main.py
   4 config.py
   5 support.py
   6 util.py

这是包中出现的所有模块,出现不止一次,不包括测试、__init__.py和{}。在

由于包是基于文件系统的,在正常情况下,您不能拥有相同的包,因为文件/目录没有重复。在

当然,您可以有相同的名称空间包。在

在不同的路径中也可以有相同的包/模块名。他们被按顺序搜索,所以第一个获胜。在

相关问题 更多 >