我不知道有多少次我被咬了,因为我不小心把我的文件命名为我要导入的东西,结果python导入了这个文件。如果/在PYTHONPATH中,这个示例应该显示我在说什么(我的第一个示例不起作用):
/foo
__init__.py
/test
foo.py
__init__.py
def do_thingy():
print "Swosh!"
foo.py
from foo import * # Whops! Self include. Happy debugging.
do_thingy() # Not imported. You fail.
django当应用程序、模块、插件出现此错误时,似乎会无声地失败,而调试的方法(我被告知)是转到shell并导入所有内容,直到找到损坏的内容。你知道吗
递归导入有什么实际用途吗?你知道吗
Python名称空间要求每个名称都是不同的。每当您导入模块时,它总是导入到全局命名空间中。在前端,这些只是简单的任务。如果导入的内容与已存在的名称冲突,它将自动替换该名称所指定的引用。你知道吗
您不会希望Python在每次重新分配变量时都“提醒”您,那么为什么您希望Python对模块导入也这样做呢?你知道吗
例如:
你猜怎么着?您刚刚用值
None
替换了分配给bar
的模块对象。你知道吗最后,回答您的问题:递归导入从来都不是一个好主意,因为它们充其量是混乱的,最坏的情况是危险的。你知道吗
不,导入你自己是没有用的。但是,有两件东西可以用同一个名字进口也没有用,所以没有必要去发现你给的案子并对其进行特殊处理。你知道吗
相关问题 更多 >
编程相关推荐