我想知道是否存在使用模块完全相同名称和模块内部类的风险。
答案 0 :(得分:5)
PEP 8表示模块应该具有简短的全小写名称,而类名称使用CapWords约定。因此,如果模块和类具有相同的名称,则不遵循这些样式约定。
从技术上讲,根本没有风险。
答案 1 :(得分:1)
除了可能让自己(或其他开发者)感到困惑之外,我认为它没有任何问题。实际上,在标准Python模块中有几个例子,例如: random.random
和pprint.pprint
。
P.S。迂腐random
和pprint
是函数而不是类,但如果有任何
答案 2 :(得分:0)
这不是问题。标准库中的示例:time.time
是一个与封闭模块同名的函数。
我可能无法从stdlib给你一个类示例,因为它们的名称类似于MyClass,根据PEP8的“类名”部分,而模块名称往往是小写的。
答案 3 :(得分:0)
这取决于您导入模块的方式。如果您只是导入文件而不是类,那么我想它会像
一样myModule.myModule.function()
这似乎不太令人满意。如果你使用
来自myModule import * 的
那么你会喜欢
myModule.function()