Python中的代码组织:在哪里放置模糊方法的好地方?

时间:2009-09-05 15:25:58

标签: python code-organization

我有一个名为Path的类,在专用模块Path.py中定义了大约10个方法。最近我需要为Path编写另外5种方法,但是这些新方法非常模糊和技术性,并且90%的时间都不相关。

在哪里放置它们的好地方,以便它们的背景清晰?当然我可以把它们放在类定义中,但我不喜欢它,因为我喜欢把重要的东西与模糊的东西分开。

目前我将这些方法作为在单独模块中定义的函数,只是为了保持分离,但最好将它们作为绑定方法。 (目前,他们将Path实例作为显式参数。)

有人有建议吗?

6 个答案:

答案 0 :(得分:4)

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

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

我认为一个好的做法可能是按重要性排序功能。正如您可能已经听过的那样,有些人建议将公共成员放在第一位,然后将私人/受保护的成员放在第您可以考虑将类中的常用方法放在比隐藏方法更高的位置。

答案 1 :(得分:2)

如果您希望不惜任何代价将这些方法放在不同的源文件中,并且热衷于不惜任何代价将它们放在方法中,您可以通过使用不同的源文件来定义mixin类并具有这两个目标。您的Path类导入该方法并从该mixin中多次继承。所以,从技术上讲,这是非常可行的。

但是,我不推荐这个行动方案:值得使用“大枪”(例如多重继承)仅用于服务重要目标(例如重用和删除重复),并且以这种方式分离方法是并不是一个特别重要的目标。

如果那些“模糊不清的方法”没有起到任何作用,你就不会实施它们,所以它们毕竟必须具有一定的重要性;所以我只是在文档字符串和评论中澄清它们的用途,也许明确提到它们很少需要,并留待它。

答案 2 :(得分:0)

我只是在名称前加_,以表明读者不应该为此烦恼。 它通常与其他语言的私人成员相同。

答案 3 :(得分:0)

将它们放在Path类中,并使用注释或文档字符串记录它们是“模糊”的。如果你愿意的话,最后将它们分开。

答案 4 :(得分:0)

哦等等,我想到了一些事情 - 我可以在Path.py模块中定义它们,其中每个模糊的方法都是一个单行程序,它将从当前存在的单独模块调用该函数。通过这种妥协,晦涩的方法将在文件末尾包含10行,而不是其大部分的50%。

答案 5 :(得分:0)

我建议从Path类的属性中调用它们,这些属性称为“Utilties”。例如:Path.Utilities.RazzleDazzle。这将有助于自动完成工具和一般维护。