1. ホーム
  2. python

[解決済み] 関数名の前後にアンダースコア"__"が付いている関数があるのはなぜですか?

2022-03-20 03:59:06

質問内容

このquot;underscoring"はよく発生するようですが、これはPython言語の要件なのでしょうか、それとも単に慣習の問題なのでしょうか。

また、どの関数にアンダースコアが付きやすいか、その理由を誰か挙げて説明してください( __init__ など)を教えてください。

どのように解決するのですか?

からの 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__ . このような名前は決して作らないでください。

先頭と末尾にアンダースコアが2つある名前は、基本的に Python 自身が予約していることに注意してください: "Never invent such names; only use them as documented".