12

スタイル ガイドにはアンダースコアを使用する必要があると記載されていますが、多くの Python 組み込み関数は使用しません。アンダースコアの基準は何ですか? Python スタイル ガイドラインとの一貫性を維持したいのですが、この領域は少しあいまいに思えます。良い経験則はありますか、それは私自身の判断に基づいていますか、それともどちらにしても問題ではないのでしょうか?

たとえば、関数isfoo()に古い関数に一致する名前を付ける必要がありis_foo()ますか?それとも、スタイル ガイドラインに一致する名前にする必要がありますか?

4

2 に答える 2

5

スタイルガイドはこれをあなたに任せます:

関数名は小文字にし、読みやすさを向上させるために必要に応じて単語をアンダースコアで区切ります。

つまり、メソッド名にアンダースコアを追加すると読みやすくなると思われる場合は、ぜひ 1 つ (または 2 つ!) を挿入してください。標準ライブラリに他にも同様のケースが十分にあると思われる場合は、遠慮なく省略してください。 ここには厳密な規則はありません(ただし、他の人はその点について同意しないかもしれません)。私が普遍的に受け入れられていると思う唯一のことは、メソッドに「CapWords」または「camelCase」を使用しないことです。「CapWords」はクラス用に予約する必要があり、「camelCase」の優先順位はどこでもわかりません(ただし、それについては間違っている可能性があります)...

于 2013-04-03T04:11:32.223 に答える
3

スタイル ガイドにはアンダースコアを使用する必要があると記載されていますが、多くの Python 組み込み関数は使用しません。

isinstance()例としてビルトインを使用すると、これは 1997 年に書かれました

PEP 8 -- Python コードのスタイル ガイドは 2001 年まで公開されていませんでした。これがこの不一致の原因である可能性があります。

アンダースコアの基準は何ですか? Python スタイル ガイドラインとの一貫性を維持したいのですが、この領域は少しあいまいに思えます。良い経験則はありますか、それは私自身の判断に基づいていますか、それともどちらにしても問題ではないのでしょうか?

「疑わしいときは、最善の判断を下してください。」

これは法律ではなく、スタイルガイドです。注意事項を念頭に置いて、適切なガイドに従ってください(私自身のものを強調してください):

関数名は小文字にし、読みやすさを向上させるために必要に応じて単語をアンダースコアで区切る必要があります。

下位互換性を維持するために、mixedCase は既に一般的なスタイル(threading.py など) であるコンテキストでのみ許可されます。

したがって...

たとえば、関数isfoo()に古い関数に一致する名前を付ける必要がありis_foo()ますか?それとも、スタイル ガイドラインに一致する名前にする必要がありますか?

同様の関数の慣例に従うために、おそらくそれを と呼ぶべきです。isfoo()読み取り可能です。「読みやすさが重要です。」

于 2013-04-03T04:19:25.057 に答える