Python 相同模块名称约定

Ada*_*dam 1 python convention naming

参考这个问题:
python:不同包下同名的两个模块和类

无论嵌套如何,包中的所有模块都应该唯一命名吗?PEP8 和 PEP423 似乎没有解决这个问题。

Mar*_*ers 6

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

例如,Python 标准库有email.messageand email.mime.message、 and multiprocessing.connection、 以及multiprocessing.dummy.connection等等:

$ 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
Run Code Online (Sandbox Code Playgroud)

这是所有出现在包内的模块,出现不止一次,不包括测试,__init__.py__main__.py.