假设我有一个包含大量嵌套条件的实例方法。什么是封装该代码的好方法?放入同一个类或函数的另一个实例方法?你能说出为什么某种方法更受欢迎吗?
答案 0 :(得分:0)
这里有两个不同的问题。第一个是如何处理多个嵌套条件。没有一个正确的答案:它取决于您的编码风格,条件如何相互作用,程序的体系结构等等。有关一些想法,请查看this Programmers.SE问题和Jeff Atwood's blog post;就个人而言,我喜欢
if not check1: return
code1
if not check2: return
code 2
...
虽然有些人反对多个退出点。
第二个问题是如果您正在编写面向对象的Python,该如何处理各个函数。通常的答案是将它们作为函数放在包含类的模块中,因为不需要将函数附加到特定的类。但是,如果您愿意,可以将它们作为静态方法包含在类中。
答案 1 :(得分:0)
如果函数仅由一个类使用,特别是如果模块有更多具有更多实用函数的类(仅由一个类使用),如果将函数保留为静态方法而不是明确他们属于哪个班级。此外,自动重构(使用例如绳索库或PyCharm或PyDev等)然后自动将静态方法与类一起移动到类移动的任何位置。
与模块级函数不同, P.S。 @staticmethod
可以在子类中重写,例如如果数学公式不依赖于对象,但取决于对象的类型。