2009-09-05 49 views
2

我有一个叫做Path的类,它定义了大约10种方法,在专用模块Path.py中。最近,我需要为Path编写5个更多的方法,但是这些新方法非常模糊和技术性,90%的时间都不相关。Python中的代码组织:哪里是放置不明方法的好地方?

哪里会是一个很好的地方放他们,所以他们的语境清晰?当然,我可以将它们与类定义放在一起,但我不喜欢那样,因为我喜欢将重要的东西与晦涩的东西分开。

目前,我有这些方法作为一个独立的模块中定义的,只是为了保持独立的功能,但它会更好,让他们成为绑定方法。 (目前,他们采取Path实例作为一个明确的参数。)

有没有人有一个建议?

+0

你能举一个这样一个晦涩的方法的例子吗? – 2009-09-05 15:31:06

+0

'get_item_with_end_node',它从路径中获取一个项目,假定该路径具有所谓的“结束节点”。在我的项目中,绝大多数路径没有末端节点。 – 2009-09-05 15:33:22

回答

2

如果你是热衷于把在不同的源文件,这些方法在任何成本,并且热衷于让他们在不惜任何代价的方法,你可以通过使用不同的源文件中定义的混合类实现这两个目标,让您的Path类导入该方法并从该mixin中乘以继承。所以,从技术上讲,这是非常可行的。然而,我不会推荐这样的行动:它只值得使用“大枪”(例如多重继承)来服务重要目标(例如重用和去除重复),并且以这种方式分离方法并不是一个特别重要的目标。

如果这些“不起眼方法”没有发挥作用,你就不会实现它们,所以他们必须有一定的重要性,毕竟,所以我只是在文档和评论中澄清他们的用途,或许明确提到他们很少需要,并且将其留在那里。

0

我只想用下划线_前面加上的名字,以示读者不要理会他们。 它通常与其他语言的私人成员一样。

4

如果该方法与路径相关 - 无论多么模糊 - 我认为它应该存在于类本身。

如果您有多个有路径相关功能的地方,则会导致出现问题。例如,如果您想检查某些功能是否已经存在,那么新程序员如何知道检查其他不太明显的地方?

我认为一个好的做法可能是按重要性排序函数。正如你可能听说过的,有些人建议首先把公共的班级成员,以及后来的私人/受保护的成员。你可以考虑把你的班级中的常用方法比晦涩的方法更高。

+0

+1为公众优先。 – fengshaun 2009-09-05 22:20:33

0

,把它们放进Path类,并记录他们是“晦涩”要么意见或文档字符串。如果你愿意的话,最后把它们分开。

0

哦,等等,我想到了一些东西 - 我可以在Path.py模块中定义它们,每个模糊的方法将是一个单线程,它将从当前存在的单独模块调用该函数。有了这个折衷方案,不明确的方法将在文件末尾包含10行,而不是其大小的50%。

0

我建议让它们可以从Path类的一个属性访问,称为“Utilities”。例如:Path.Utilities.RazzleDazzle。这将有助于自动完成工具和一般维护。

相关问题