Python库中的命名规范
我正在一个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代码的风格指南。