假设我有一个包含模块的程序包:Python模块具有相同名称(即,在包中重新使用标准模块名称)
SWS/
__init.py__
foo.py
bar.py
time.py
和模块需要参考包含在彼此的功能。看起来我遇到了与我的time.py
模块有关的问题,因为有一个标准模块出现相同的名称。
举例来说,在我的foo.py
模块既需要我SWS.time
和标准Python time
模块的情况下,我遇到了麻烦,因为解释器会看包里面找到我time.py
模块它遇到的标准time
模块之前。
有没有解决这个办法吗?这是否是否定的情况,模块名称是否应该重用?
关于包哲学的任何解决方案和意见在这里都会很有用。
我认为这很明显,你不应该重用标准的python模块名称。这只是要求麻烦。 – Cryptite
为什么显而易见? devilsadvocate> – MikeWyatt
查看httplib/httplib2和urllib/urllib2。它造成了一个丑陋的图书馆世界,但这更适合于命名冲突和不确定的行为。 –