Python库中的命名规范

2 投票
3 回答
2720 浏览
提问于 2025-04-11 09:24

我正在一个Python包里实现一个搜索算法(我们叫它MyAlg)。因为这个算法超级复杂,所以这个包里需要有一个辅助类来处理算法的选项。目前我自己在开发这个包(而且我并不是程序员),不过我预计以后会有1到2个程序员加入这个项目。这将是我第一次和外部程序员合作。因此,为了让他们更方便,我应该怎么给这个类命名呢:Options、OptionsMyAlg、MyAlgOptions,还是其他什么名字?

除了http://www.joelonsoftware.com/articles/Wrong.html,你有什么建议我可以阅读的相关资料吗?

谢谢你,
Yuri
[这个问题也发在这里:http://discuss.joelonsoftware.com/default.asp?design.4.684669.0,我会在两个地方更新答案]

3 个回答

2

如果所有内容都放在一个文件里,可以把这个类命名为 Options。这样你的用户就可以这样写:

import myalg

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

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

另外,之前提到的 Python 风格指南建议,包的名字应该全部用小写字母。

2

把它命名为 Options 应该没问题。Python的标准库通常认为,使用命名空间可以让不同的包里有相同名字的东西变得简单易管理。举个例子,open 这个名字在Python里既是一个内置函数,也是 os 模块里的一个函数,还有很多不同的模块都定义了一个叫 Error 的异常类,等等。

这就是为什么一般不推荐使用 from some_module import * 这种写法,因为这样会让你的代码不清楚到底指的是哪个 open,等等。

9

我建议你去看看 PEP8 这个文档,它是关于Python代码的风格指南。

撰写回答