この「アンダースコア」は頻繁に発生するようですが、これは Python 言語の要件なのか、それとも単なる慣例の問題なのか疑問に思いました。
また、どの関数にアンダースコアが付く傾向があるか、またその理由 (__init__
たとえば ) を教えていただけますか?
ベストアンサー1
からPython PEP 8 - Python コードのスタイル ガイド:
説明: 命名スタイル
先頭または末尾にアンダースコアを使用する次の特殊形式が認識されます (これらは通常、任意の大文字と小文字の規則と組み合わせることができます)。
_single_leading_underscore
: 弱い「内部使用」インジケーター。例:from M import *
名前がアンダースコアで始まるオブジェクトはインポートされません。
single_trailing_underscore_
: Pythonキーワードとの競合を避けるために慣例的に使用されます。例:
Tkinter.Toplevel(master, class_='ClassName')
__double_leading_underscore
: クラス属性に名前を付けるときに、名前マングリングを呼び出します (FooBar クラス内では__boo
になります_FooBar__boo
。以下を参照)。
__double_leading_and_trailing_underscore__
: ユーザーが制御する名前空間に存在する「魔法の」オブジェクトまたは属性。例:__init__
、__import__
または__file__
。このような名前を決して作成しないでください。ドキュメントに記載されているとおりにのみ使用してください。
先頭と末尾に二重のアンダースコアが付いた名前は、基本的に Python 自体のために予約されていることに注意してください。「このような名前を決して作成しないでください。ドキュメントに記載されているとおりにのみ使用してください。」