Python库中的命名约定

时间:2008-10-03 17:37:48

标签: python naming-conventions

我正在python包中实现一个搜索算法(我们称之为MyAlg)。由于算法是超级复杂的,因此包必须包含用于算法选项的辅助类。目前我正在自己开发整个软件包(我不是程序员),但我希望1-2名程序员以后加入该项目。这将是我的第一个涉及外部程序员的项目。因此,为了使他们的生活更轻松,我应该如何命名这个类:Options,OptionsMyAlg,MyAlgOptions或其他什么?

http://www.joelonsoftware.com/articles/Wrong.html以外,您建议我在本主题中阅读哪些内容?

谢谢 尤里 [从这里发布:http://discuss.joelonsoftware.com/default.asp?design.4.684669.0将更新两个地方的答案]

3 个答案:

答案 0 :(得分:6)

我建议你阅读PEP8(Python代码的样式指南)。

答案 1 :(得分:2)

命名为Options应该没问题。 Python标准库通常采用这样的理念,即命名空间使得不同的包具有相同名称的东西变得容易和易于管理。例如,open既是内置函数又是os模块中的函数,几个不同的模块定义了Error异常类,依此类推。

这就是为什么说from some_module import *通常被认为是错误的形式,因为它不清楚你的代码所引用的open等等。

答案 2 :(得分:2)

如果它全部适合一个文件,请将类命名为Options。然后您的用户可以写:

import myalg

searchOpts = myalg.Options()
searchOpts.whatever()

mySearcher = myalg.SearchAlg(searchOpts)
mySearcher.search("where's waldo?")

请注意,另一个答案中引用的Python样式指南建议应使用全部小写字母命名包。