2024-10-02 20:30:12 发布
网友
关于这个问题:python: Two modules and classes with the same name under different packages
一个包中的所有模块是否应该具有唯一的名称,而不考虑嵌套?PEP8和PEP423似乎没有解决这个问题。在
不,没有要求不同级别的名称必须不同。每个级别都是一个单独的命名空间。如果foo.utils和{}在您的项目中有意义,那么就这样做。在
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和{}。在
__init__.py
由于包是基于文件系统的,在正常情况下,您不能拥有相同的包,因为文件/目录没有重复。在
当然,您可以有相同的名称空间包。在
在不同的路径中也可以有相同的包/模块名。他们被按顺序搜索,所以第一个获胜。在
不,没有要求不同级别的名称必须不同。每个级别都是一个单独的命名空间。如果}在您的项目中有意义,那么就这样做。在
foo.utils
和{例如,Python标准库有^{} 和{a2},和^{} ,以及{a4},等等:
这是包中出现的所有模块,出现不止一次,不包括测试、}。在
__init__.py
和{由于包是基于文件系统的,在正常情况下,您不能拥有相同的包,因为文件/目录没有重复。在
当然,您可以有相同的名称空间包。在
在不同的路径中也可以有相同的包/模块名。他们被按顺序搜索,所以第一个获胜。在
相关问题 更多 >
编程相关推荐