Python:如何将类方法可视化地分组为多个部分

时间:2013-07-15 21:01:08

标签: python code-layout

在组织我的代码时,我有点迂腐,所以我尝试了将我的类方法可视化地分组为逻辑部分/部分的方法。我的问题是在Python编辑器中是否有任何可视方式分离类方法组的方法? PEP8没有提到这个非问题所以我不确定如何“正确”地做到这一点。

我想这个愿望来自我的Xcode用法,我会添加#pragma mark - XY来分隔方法部分。我正在使用Sublime Text for Python,是否有支持某种分组风格的编辑器或IDE?

因此,我正在使用的示例分组是在逻辑上相似的方法彼此之下但是在“组”之间添加更多的空格和水平线(直到它到达80字符边界),如下所示: / p>

class Foo (object):
    def __init__(self)

    # ------------------------- Properties
    @property
    def foo(self)
    @property
    def bar(self)

    # ------------------------- Querying
    def find(self, id)
    def find_siblings(self)
    def find_related(self, attr)

    # ------------------------- Class Methods
    @classmethod
    def setup(cls)
    @classmethod
    def purge_cache(cls)

    # ------------------------- Utilities
    def __str__(self)
    def __unicode__(self)
    def __repr__(self)

1 个答案:

答案 0 :(得分:1)

一个有用的方法是在类本身上使用长文档字符串,对方法进行逻辑分组,请参阅PEP 258

在这种情况下,您可以执行以下操作:

class MyClass():
   """
   This class provides a number of methods grouped accordingly:
      Methods to do with a:
       - a_do_something - Quick Summary
       - a_do_something_else - Quick Summary
      Methods to do with b:
       - b_do_something - Quick Summary
       - b_do_something_else - Quick Summary
   """
   def __init__(self):
       """ Initialise MyClass """
       pass  # More likely some code

   if True:  # Allow group folding for Functional Group A
   ## 
   ## The following functions and class methods are to do with a:
   ## 
       def a_do_something(params):
          """ Quick Summary

          Parameters:
              Describe Each
          Returns:
              What

          Long description text.
          """
          pass # really the code for this function

但是,您可能希望考虑将任何足够长的代码分解为更多类并将其分组。