如果内部的模块名称和类名具有相同的名称,Python中是否存在任何风险?

时间:2011-10-31 10:36:18

标签: python naming-conventions

我想知道是否存在使用模块完全相同名称和模块内部类的风险。

4 个答案:

答案 0 :(得分:5)

PEP 8表示模块应该具有简短的全小写名称,而类名称使用CapWords约定。因此,如果模块和类具有相同的名称,则不遵循这些样式约定。

从技术上讲,根本没有风险。

答案 1 :(得分:1)

除了可能让自己(或其他开发者)感到困惑之外,我认为它没有任何问题。实际上,在标准Python模块中有几个例子,例如: random.randompprint.pprint

P.S。迂腐randompprint是函数而不是类,但如果有任何

,风险将是等价的

答案 2 :(得分:0)

这不是问题。标准库中的示例:time.time是一个与封闭模块同名的函数。

我可能无法从stdlib给你一个类示例,因为它们的名称类似于MyClass,根据PEP8的“类名”部分,而模块名称往往是小写的。

答案 3 :(得分:0)

这取决于您导入模块的方式。如果您只是导入文件而不是类,那么我想它会像

一样
  

myModule.myModule.function()

这似乎不太令人满意。如果你使用

  来自myModule import *

那么你会喜欢

  

myModule.function()