[解決済み] 関数名の前後にアンダースコア"__"が付いている関数があるのはなぜですか?
質問内容
この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".
関連
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] 億の相対的輸入
-
[解決済み] Pythonの関数定義における->の意味とは?
-
[解決済み】関数の前のエクスクラメーションマークは何をするのですか?
-
[解決済み】Pythonの「private」メソッドは、なぜ実際にはprivateではないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み] Pythonのオブジェクトが持っているメソッドを検索する