0

假设我有一个包含大量嵌套条件的实例方法。封装该代码的好方法是什么?放入同一个类或函数的另一个实例方法?您能说一下为什么首选某种方法吗?

4

2 回答 2

0

这里有两个不同的问题。第一个是如何处理多个嵌套条件。没有唯一的正确答案:这取决于您的编码风格、条件如何交互、程序的体系结构等等。看看这个 Programmers.SE问题和Jeff Atwood 的博客文章以获得一些想法;就个人而言,我喜欢

if not check1: return
code1

if not check2: return
code 2

...

尽管有些人反对多个出口点。


第二个问题是如果您正在编写面向对象的 Python,如何处理各个函数。通常的答案是将它们作为函数放入包含该类的模块中,因为不需要将函数附加到特定类。但是,如果您愿意,可以将它们作为静态方法包含在类中。

于 2012-08-26T10:34:06.837 回答
0

如果该函数仅由一个类使用,特别是如果该模块具有更多具有潜在更多实用程序功能的类(仅由一个类使用),如果您将函数保留为静态方法而不是使其明显,它可能会澄清一些事情他们属于哪个阶级。此外,自动重构(使用例如rope 库,或PyCharm 或PyDev 等)然后自动将静态方法与类一起移动到类被移动的任何位置。

PS @staticmethod与模块级函数不同,它可以在子类中被覆盖,例如,在不依赖于对象但依赖于对象类型的数学公式的情况下。

于 2012-08-26T13:16:51.583 回答