将Python模块命名为“global”或其他关键字是不是很糟糕?

时间:2013-10-14 03:36:57

标签: python django

我继承了一些旧的Django代码,其中一个模块名为globalINSTALLED_APPS中的全名为'labweb.global'),其中包含驱动首页的模型和视图该网站的其他一些零散部分。但是,global是一个Python关键字,所以这有点......但它确实有效。

我99%肯定在关键字之后命名模块是一个坏主意,但我有点惊讶它的工作原理。 Django似乎并不关心?

1 个答案:

答案 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'>

还有其他方法可以做到这一点。但是,直接导入只是无法