2012-04-04 13 views
11

PEP 257 saysPEP 257コードストリングの適切な例はどこにありますか?

クラスを文書全てドキュメンテーション文字列(1行または マルチライン)の前後に空白行を挿入する - 一般的には、クラスの 方法は単一によって互いに分離されています空白行、 docstringは空白行で最初のメソッドからオフセットする必要があります。対称の場合は 、クラスヘッダーと ドキュメントストリングの間に空白行を挿入します。

しかし、私は実際にこれを実装するコードを見つけることはできません。

私はPython 2.6で提供されているいくつかの標準モジュールをチェックしました。特に、Guidoの名前が記載されているものも検索しました。 しかし、リートフェルトのコードレビューツールのも、コード私見は準拠していない(例えばhttp://code.google.com/p/rietveld/source/browse/upload.pyを参照してください):

class CondensedHelpFormatter(optparse.IndentedHelpFormatter): 
    """Frees more horizontal space by removing indentation from group 
     options and collapsing arguments between short and long, e.g. 
     '-o ARG, --opt=ARG' to -o --opt ARG""" 

    def format_heading(self, heading): 
    return "%s:\n" % heading 

この複数行のドキュメンテーション文字列が前に空白行を持っていないと、空白行が後に決算引用符の外にあります。

このクラスは/usr/lib64/python2.6/site.pyの前に空白行がありませんが、閉じ引用符の前後に空白行があります。

class _Helper(object): 
    """Define the built-in 'help'. 
    This is a wrapper around pydoc.help (with a twist). 

    """ 

    def __repr__(self): 

PEP 257のデモに使用できる例がありますか?事前に

おかげであなたはPEP257に準拠する場合

+1

"List of"/"Poll"質問は、Stack Overflowのトピックではありません。また、私はこれがあなたが解決しようとしている実際の問題にどのように関連するのか分かりません。 – agf

+1

あなたが行った研究には感謝しています。公式のdocstring形式の例もありますが、どのような利点があるのか​​は分かりません。誤ったドキュメント文字列の例がありますが、おそらくGuidoによって書かれたものもあります。正しいものを記述したい場合は、ガイドラインに従ってください(PEPの文書そのものも例を示しています)。要するに、ここでのポイントは何ですか?なぜこのフォーマットの例がもっと必要ですか? –

+2

@agf:これは投票ではありませんでした。私は、PEPが一部の分野で100%明確ではないと信じています。私は、これらの部分を明確にする例を探しています。具体的には、PEPと一致するクラスのdocstringsの例をlokkingしています。 halstのコードは、docstringクラスの前後の空白行と、docstring自体の最後の空行を表示します。それは私が考えていなかったもう一つの選択肢です。 – Bram

答えて

7

ない直接の答えは、しかし、あなたは私が書いたツールを使用することができます:

I https://github.com/halst/pep257

(どのくらいのコードを見てショックを受けました標準ライブラリでも)PEP257に準拠しようとしません。

おそらく、ほとんどの人が自分のdocstringスタイルは理にかなっていると思い、私はまた、PEP257スタイルに厄介なものがあると思った、しかし、私はそれと恋に落ちたいくつかの時間のためにそれを使用した後、 とそれがdocstringsを書くのに最も美しい方法だと思います。私はいつも可能なあらゆる面でPEP257に従い、より多くの人々が彼らのスタイルをどのように改善できるかを見ることができるようにツールを書きました。

は一例として、私はPEP8とpep8 toolで面白い経験をしました:私は最初PEP8を読んだとき、私はそれが好きで、は、私はそれに従いますが、私はpep8 に自分のコードをしようとしたとき、私はどのくらいのことでショックを受けたを考えましたPEP8私は、これらのスタイルエラーを修正した後、私のコードがどれほど優れているかを見ています。

私は人々がpep257と似たような経験をし、その後も幸いにPEP257に従うことを願っています。

+0

ありがとう、これは確かに役立つでしょう。それはすでに私が行ったのとは少し異なるPEPを解釈したことを示しています。 – Bram

+0

@Bram興味深い!あなたはPEPのどの部分を違う方法で解釈しましたか?ちょっと興味があるんだけど。多分私の解釈に間違いがあるかもしれません。 – Halst

+0

あなたのpep257.pyを読む前に、引用符の後に**や**の前に空白行を入れたことはありません。 – Bram

0

は、私の知る限り見ることができるように、あなたがするリンクされたドキュメントは言う:

がすべてのドキュメンテーション文字列(1行または複数行)そのドキュメントクラスの後に空白行を挿入します - 一般的に言えばクラスのメソッドは1つの空行で区切られており、最初のメソッドから空文字列でオフセットする必要があります。

(強調鉱山)

だから彼らはこのように空白行と次のメソッド宣言を分離し、ドキュメンテーション文字列の後に空白行を持っているとして、あなたが与える例はすべて正しいです。

関連する問題