3

コードの編成に関しては、私は少し衒学的な側にいるので、クラスメソッドを論理的な部分/セクションに視覚的にグループ化する方法を考え出そうとしました。私の質問は、Python エディターでクラス メソッド グループを視覚的に分離するための好ましい方法があるかどうかです。PEP8 はこの非問題について言及していないため、これを「正しく」行う方法がわかりません。

#pragma mark - XYこの欲求は、メソッド セクションを分離するために追加する Xcode の使用法から来ていると思います。Sublime Text for Python を使用しています。特定のスタイルのグループ化をサポートするエディターまたは 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

便利な方法の 1 つは、メソッドを論理的にグループ化するクラス自体で長い docstring を使用することです。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 に答える