この記事では、Python のアンダースコア (_) について説明します。
以下はさまざまな場所です。 _ Python で使用されます:
- 単一のアンダースコア:
- インタプリタ内の単一のアンダースコア
- 名前の後の単一のアンダースコア
- 名前の前に 1 つのアンダースコアを付ける
- 数値リテラル内の単一のアンダースコア
- 二重アンダースコア:
- 名前の前の二重アンダースコア
- 名前の前後に二重アンダースコアを付ける
単一のアンダースコア
例 1: インタプリタ内の単一のアンダースコア:
_ Python プロンプト/インタープリターで最後に実行された式の値を返します。
例 2: 値を無視する単一のアンダースコア
何度も、その時点での戻り値がそれらの値を Underscore に割り当てることを望ましくありません。使い捨て変数として使用されます。
Python3
文字列と部分文字列
# Ignore a value of specific location/index> for> _>in> range>(>10>)> >print> (>'Test'>)> # Ignore a value when unpacking> a,b,_,_>=> my_method(var1)> |
>
>
例 3: 名前の後の 1 つのアンダースコア
Python にはデフォルトで変数名として使用できない独自のキーワードがあります。 Python キーワードと変数の間のこのような競合を避けるために、名前の後にアンダースコアを使用します。
Python3
class> MyClass():> >def> __init__(>self>):> >print>(>'OWK'>)> def> my_definition(var1>=>1>,>class_>=>MyClass):> >print>(var1)> >print>(>class_>)> my_definition()> |
>
>
出力:
1>
例 4: 名前の前に 1 つのアンダースコアを付ける
先頭のアンダースコアの前 変数 / 関数 / メソッド名は、それが内部使用のみを目的としており、クラスが必要に応じていつでも変更できることをプログラマに示します。ここでは、アンダースコアによる名前の接頭辞は非公開として扱われます。指定する場合 インポートから * _ で始まる名前はすべてインポートされません。 Python は真のプライベートを指定していないため、__all__ で指定されていれば他のモジュールから直接呼び出すことができます。 弱いプライベート
Python3
Javaの部分文字列の例
class> Prefix:> >def> __init__(>self>):> >self>.public>=> 10> >self>._private>=> 12> test>=> Prefix()> print>(test.public)> print>(test._private)> |
>
拡張子ファイルjava
>
10 12>
例 5: 数値リテラル内の単一のアンダースコア
Python 構文は、読みやすさを高めるために桁をグループ化するための視覚的な区切り文字としてアンダースコアを使用できるように利用されています。これは、最新の言語の典型的な機能であり、長いリテラル、または値を部分に明確に分割する必要があるリテラルを読みやすくするのに役立ちます。
Python3
# grouping decimal for easy readability of long literals> amount>=> 10_000_000>.>0> # grouping hexadecimal for easy readability of long literals> addr>=> 0xCAFE_F00D> # grouping bits for easy readability of long literals> flags>=> 0b_0011_1111_0100_1110> |
>
>
名前の前の二重アンダースコア
先頭の二重アンダースコアは、サブクラスでの競合を避けるために名前を書き換えるよう Python インタプリタに指示します。インタプリタは、クラス拡張機能とマングリングとして知られる機能を使用して変数名を変更します。
Python3
class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10> |
>
>
通訳者からの電話
テストファイル.py
Python インタープリターは変数名を ___ で変更します。別のクラスがその変数に直接アクセスできないため、プライベートメンバーとして複数回使用されます。 __ の主な目的は次のとおりです。 変数 /method クラス内のみ クラス外で使用したい場合は、公開することができます。
Python3
ユーザーのmysqlを表示
class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10> >def> func(>self>)> >print>(>self>.__variable)> |
>
>
ぎこちないメッシュグリッド
通訳者からの電話
名前の前後に二重アンダースコアを付ける
Python の特別なメソッドを考慮して、名前は __ で始まり、同じで終わります。 Python では、ユーザーに応じて演算子のオーバーロードとして使用できるこれらのメソッドが提供されています。 Python は、ユーザー定義関数とモジュールの関数を区別するためにこの規則を提供します。
Python3
class> Myclass():> >def> __add__(>self>,a,b):> >print> (a>*>b)> |
>
>
通訳者からの電話