3

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

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

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

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)
4

1 回答 1

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

等等

但是,您可能希望考虑将任何足够长的代码分解为更多类并以这种方式对事物进行分组。

于 2013-07-15T21:25:10.623 回答