4

したがって、一部の言語には規則が期待されていることを知っています。

PHP - underscore_case() [ほとんどの場合、lolo]

ジャワ -camelCase()

C# -PascalCase()

「Pythonic」命名規則とは何ですか? 最終的には問題ではないことはわかっていますが、ほとんどのモジュールが実行される「ベストプラクティス」の方法があるかどうか疑問に思っています.

4

3 に答える 3

8

2 つの単語: PEP 8

PEP 8 は (事実上の) Python スタイル ガイドです。このドキュメントのいくつかのハイライト (意図的に一部を省略しました。詳細については、元のドキュメントを参照してください):

  • パッケージ名とモジュール名: すべて小文字の名前。読みやすくする場合は、モジュール名にアンダースコアを使用できます。

  • クラス名: ほとんど例外なく、クラス名は CapWords 規則を使用します。*

  • グローバル変数名: 規則は関数の規則とほぼ同じです。

  • 関数名: 関数名は小文字にし、読みやすさを向上させるために必要に応じて単語をアンダースコアで区切ってください。threading.py下位互換性を維持するために、mixedCase は既に一般的なスタイル (例: ) であるコンテキストでのみ許可されます。

  • メソッド名とインスタンス変数: 読みやすくするために必要に応じて単語をアンダースコアで区切った小文字。非パブリック メソッドとインスタンス変数に対してのみ、先頭に 1 つのアンダースコアを使用します。

  • 定数: すべて大文字で書かれ、アンダースコアで単語が区切られます。例が含まれます。

于 2009-11-13T22:13:24.893 に答える
5

PEP 8を読んでください。

これは、Python の作成者である Guido van Rossum によって書かれた、Python コードのスタイル ガイドです。

ちなみに、あなたの質問に対する答えはunderscore_case、変数と関数名、およびPascalCaseクラスに使用することです。

于 2009-11-13T22:14:12.167 に答える
1

7 つの単語: Google Summer of Code Python スタイル ガイド

一部の命名規則は PEP8 とは異なり、代わりに、このスタイル ガイドの元となった元の Google Python スタイル ガイドに従っていることに注意してください。

  • 「内部」とは、モジュールの内部、またはクラス内の保護またはプライベートを意味します。単一のアンダースコア (_) を先頭に追加すると、モジュール変数と関数を保護するためのサポートがいくつかあります (import * from には含まれません)。
  • インスタンス変数またはメソッドの先頭に 2 つのアンダースコア (__) を追加すると、変数またはメソッドをそのクラスに対してプライベートにするのに効果的です (名前マングリングを使用)。
  • 関連するクラスとトップレベルの関数をまとめてモジュールに配置します。Java とは異なり、モジュールごとに 1 つのクラスに制限する必要はありません。ただし、同じモジュール内のクラスと最上位関数が高い凝集度を持っていることを確認してください。
  • クラス名には CapWords を使用しますが、モジュール名には lower_with_under.py を使用します。

命名例

  • パッケージ:lower_with_under
  • モジュール: lower_with_under_lower_with_under
  • クラス: CapWords, _CapWords
  • 例外:CapWords
  • 機能: firstLowerCapWords()_firstLowerCapWords()
  • グローバル/クラス定数: CAPS_WITH_UNDER_CAPS_WITH_UNDER
  • グローバル/クラス変数: lower_with_under_lower_with_under
  • インスタンス変数: lower_with_under_lower_with_under(保護) または__lower_with_under(プライベート)
  • メソッド名: firstLowerCapWords()_firstLowerCapWords()(保護) または__firstLowerCapWords()(プライベート)
  • 関数/メソッド パラメータ:lower_with_under
  • ローカル変数: lower_with_under
于 2009-11-13T22:39:12.713 に答える