我继承了一些旧的Django代码,其中一个模块名为global
(INSTALLED_APPS
中的全名为'labweb.global'
),其中包含驱动首页的模型和视图该网站的其他一些零散部分。但是,global
是一个Python关键字,所以这有点......但它确实有效。
我99%肯定在关键字之后命名模块是一个坏主意,但我有点惊讶它的工作原理。 Django似乎并不关心?
答案 0 :(得分:3)
是的,当然这是一个坏主意。当然你不能直接导入这样的模块:
import global # or any other keyword
只是在编译时引发SyntaxError
。但也许这就是重点?也就是说,也许设计师想要确保模块不能直接导入(但只能通过欺骗)。我不知道 - 我只是想在那里慷慨; - )
这可能是导入此类模块的最简单方法。这是文件global.py
:
print "I'm global!"
然后:
>>> import importlib
>>> importlib.import_module("global")
I'm global!
<module 'global' from 'global.py'>
还有其他方法可以做到这一点。但是,直接导入只是无法。