2011-10-27 29 views
2

まず、私はPEP8について完全に認識していますが、時には物事をどのように名付けるべきかについてはあまり明確ではありません。同じベース名を持つPythonモジュール、クラス、インスタンス変数の命名規則は何でしょうか?

ABCを省略しているとします。

  • モジュールは名前を付ける必要があります:モジュール内abc
  • クラスは名前を付ける必要があります:AbcまたはABC? (わからない)
  • インスタンス変数はあなたがabcモジュール内の定数を使用している場合は、外部からabc.CONSTANTを使用してアクセスすることもできますabc
# abc.py 
CONSTANT = "foo" 
class Abc(object): 
    pass 

# test.py 
import abc 

print abc.CONSTANT 
abc_ = abc.Abc() # oops, if I use `abc` will lose ability to access abc.FOO ? 

名前を付ける必要がありますが、あなたも持っている場合同じ名前のインスタンスはクリアされませんか?

この種の問題を解決するきれいな方法がある場合は、頭字語の代わりに単純な言葉を使用すれば、解決策は異なりますか?

注:Abc()クラスはほとんどの場合、シングルトンとして動作します。そのため、この理由でインスタンスの別の名前を見つけることができませんでした。

+1

通常、1つのモジュールはPythonでは1つのクラスに限定されていないため、すでに名前を付けた問題を避けることができます。より一般的なモジュールで共通のクラスオブジェクトをグループ化してみてください。 Singletonsの場合は – poke

+0

命名規則[className]インスタンスがよく使用されます。例:abcInstance – gecco

答えて

1

モジュール:ABC クラス:Abcの

インスタンス:インスタンスは、クラスのように名前を付けることができますが、それは決定的に必要とされていません。 あなたのケースでは、命名の衝突を避けるために、変数にインスタンスを説明する名前を付けます!

例:

class Car: 
    pass 
audi = Car() 
myCar = Car() 
myBrothersCar = Car() 
0

クラス名は、それが略語またはプレーン名前だ場合によっては、AbcまたはABCである可能性があります。

省略形の例:CRCCheckerTool

関連する問題