3

Python を使い始めたばかりで、どの表記法を使用するかを考えていました。Python の表記法に関するPEP 8ガイドを読みましたが、関数名 (mixedCase スタイルの方が好み) を除いて、そこにあるほとんどのものに同意します。

C++ では、型に関する情報は含めず、変数のスコープに関する情報のみを含める、ハンガリー語表記の修正バージョンを使用します (たとえば、ローカル変数には lVariable、クラスのメンバー変数には mVariable、グローバルには g、 s は静的、in は関数の入力、out は関数の出力です。)

この記法スタイルに名前があるかどうかはわかりませんが、Python でこのような記法スタイルを使用しない方がよいのではないかと考えていました。私は Python にあまり詳しくないので、まだ想像できない問題に遭遇するかもしれません。

また、一般的にあなたがそれについてどう思うかを知りたいです:)コードが読みにくくなると言う人もいるかもしれませんが、私はそれに慣れており、これらのラベルなしで書かれたコードは私にとって読みにくいコードです.

4

6 に答える 6

8

(ほとんどすべての Python プログラマーはコードが読みにくくなると言うでしょうが、私はそれに慣れており、これらのラベルなしで書かれたコードは私にとって読みにくいコードです)

FTFY。

真剣に、それはあなたを助けますが、あなたのコードを読もうとする他の Python プログラマーを混乱させ、悩ませます。

これも、Python 自体がどのように機能するかという理由から、それほど必要ではありません。たとえば、Python では明らかなため、「mVariable」フォームは必要ありません。

class Example(object):
    def__init__(self):
        self.my_member_var = "Hello"

    def sample(self):
        print self.my_member_var

e = Example()
e.sample()
print e.my_member_var

メンバー変数にアクセスする方法 (self.fooまたはを使用myinstance.foo) に関係なく、それがメンバーであることは常に明らかです。

他のケースはそれほど明白ではないかもしれませんが、関数を読んでいるときに「'names' 変数はパラメーターである」ということを読者が心に留めておくことができるほどコードが単純でない場合は、おそらく何か間違ったことをしている可能性があります。

于 2009-07-21T20:55:07.240 に答える
7

PEP-8 を使用します。Python の世界ではほぼ普遍的です。

于 2009-07-21T23:16:28.610 に答える
4

コードで PEP8 に違反しています。私が使う:

  • メソッドと関数の lowercaseCamelCase
  • 「プライベート」メソッドの _prefixedWithUnderscoreLowercaseCamelCase
  • 変数の underscore_spaced (任意)
  • 「プライベート」自己変数 (属性) の _prefixed_with_underscore_variables
  • クラスとモジュールの CapitalizedCamelCase (ただし、lowercasedmodule に移行しています)

私はハンガリー語表記が好きではありませんでした。変数名は簡単かつ簡潔で、どこで (どのスコープで) 使用され、その目的が何であるかを明確にするのに十分な情報を提供し、読みやすく、技術的な巨大なジャンボ (例: タイプ)。

私の違反の背後にある理由は、実際的な考慮事項と以前の経験によるものです。

  • C++ と Java では、クラスに CapitalizedCamel を使用し、メンバー関数に lowercaseCamel を使用するのが伝統です。
  • 私は、プライベートを示すためにアンダースコア プレフィックスが使用されているコードベースに取り組みましたが、それほどプライベートではありませんでした。Python 名のマングリング (二重下線) を台無しにしたくありませんでした。これにより、形式に少し違反し、単体テスト中に内部クラスの状態を覗くことができました。
于 2009-07-21T20:55:35.977 に答える
3

コードに対して実行できる便利な pep-8 コンプライアンス スクリプトがあります。

http://github.com/cburroughs/pep8.py/tree/master

于 2009-07-21T23:26:15.533 に答える
2

プロジェクトと対象ユーザーによって異なります。

オープンソースのアプリケーション/プラグイン/ライブラリを構築している場合は、PEP ガイドラインに従ってください。

これがあなたの会社のプロジェクトである場合は、会社の慣習などに固執してください。

これがあなた自身の個人的なプロジェクトである場合は、流動的で使いやすい慣習を使用してください。

これが理にかなっていることを願っています。

于 2009-07-21T20:52:16.967 に答える