一部の関数では関数名の前後にアンダースコア「__」が付いているのはなぜですか? 質問する

一部の関数では関数名の前後にアンダースコア「__」が付いているのはなぜですか? 質問する

この「アンダースコア」は頻繁に発生するようですが、これは 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 自体のために予約されていることに注意してください。「このような名前を決して作成しないでください。ドキュメントに記載されているとおりにのみ使用してください。」

おすすめ記事