【发布时间】:2017-06-03 11:47:18
【问题描述】:
我有我在我的一个项目中使用的小模块。现在我决定将它放在 github 上,所以现在我正在编写一些文档字符串并清理代码。
我有 2 个类的组合,所以初始化如下所示:
foo = Class_1()
bar = Class_2(param1=foo)
我知道Class_2 的第一个参数必须是Class_1 的实例,否则代码将不起作用。但可能只有我自己清楚,因为我编写了Class_2 的代码,但是当使用模块作为 API 时,用户可能不清楚param1 必须是Class_1 的一个实例。如果有人会使用bar = Class_2(param1='foo')。引用会很糟糕,并且无法理解发生了什么。所以问题是:我是否需要检查我的__init__ 和isinstance(param1, Class_1),如果没有用适当的消息提出一个例外,或者编写好的文档就足够了?
【问题讨论】:
-
因为至少有 X% 的用户不会阅读文档,并且由于好的代码应该是自记录的并防止用户错误使用 - 最好更改算法以防止 已知错误。我们有足够的未知错误需要担心。
标签: python exception-handling open-source