【问题标题】:How should I arrange methods in a class in Python?我应该如何在 Python 的一个类中安排方法?
【发布时间】:2011-03-18 16:50:30
【问题描述】:

在 Python 中应该如何(或者是一种简洁的方式)组织方法?

我总是将__init__ 方法放在首位,然后是任何其他__foo__(你怎么称呼它们?)方法。但随后它会导致混乱。

【问题讨论】:

  • 请阅读其他人的代码。选择一个随机的开源 Python 项目。阅读他们的代码。特殊方法名称(__ 名称)是您正在寻找的。在询问之前,您应该先将 Python 语言参考加入书签并在那里查看。

标签: python methods code-organization


【解决方案1】:

我的偏好是首先放置 __init__ 方法,然后按字母顺序分配其他方法。

【讨论】:

    【解决方案2】:

    我喜欢这样组织它们:

    第一个:构造函数 (__init__)

    第二:任何其他__方法

    第三:大致可以归类为“get”的常规方法

    第四:大致可以归类到“set”下的常规方法

    第五类:其他一切(使用任何产生除返回值以外的任何东西的方法——即,实际输出某些东西或保存到数据库——位于第五类的最后)

    如果您始终如一地遵循该模式,您的眼睛就会习惯它,并且导航变得容易。当然,这样的偏好因人而异。

    【讨论】:

      【解决方案3】:

      我使用两种策略:

      • 一个可以折叠代码的编辑器,因此您不必查看所有代码。
      • 我将大类拆分为较小的类,每个类只做一件事,然后从这些小块构建我的应用程序。

      【讨论】:

      • 我明白你的意思,但我的意思是,即使我折叠积木,我也会花一些时间来回滚动,因为我错过了我正在寻找的方法,它是在某个随机的地方。
      • 获取一个编辑器,您可以在其中通过键入名称的几个字符快速找到方法。我将 Eclipse 与 PyDev 一起使用,并且大纲视图有一个搜索选项。或者我可以使用 Ctrl+J、Ctrl+K 或 F3。
      • @共产鸭:这就是一个好的编辑器派上用场的地方。使用一个可以让您跳转到函数/方法的定义并返回而不会大惊小怪的方法。绝大多数编程编辑器应该都能应付。
      • 我使用 PyDev,但我从来没有真正摆弄过搜索或其他任何东西。 :P
      • 对你不利 :-) Eclipse 提供了至少十种在源代码中查找内容的方法,你至少应该知道四种。
      【解决方案4】:

      我不确定是否有官方标准,但我总是将 __init__ 方法放在首位,然后是我自己的方法,然后是我计划实施的任何内置函数 (__str__,__eq__ , ETC)。我尝试按类似的功能对方法进行分组,并在我的类中对内置函数进行相同的排序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-18
        • 1970-01-01
        • 1970-01-01
        • 2020-10-18
        • 1970-01-01
        • 2019-06-30
        相关资源
        最近更新 更多