Pythonのアンダースコア(_)の使い方を徹底解説!シングルとダブルの違いとは
Pythonでは、状況に応じてシングルアンダースコア(_)とダブルアンダースコア(__)を使い分けます。一見すると単なる記号に見えますが、それぞれに明確な役割や慣習が存在します。
Pythonでアンダースコアが使われる主なケースは以下のとおりです。
- インタプリタで最後に評価した式の値を保持したい場合
- 特定の値を意図的に無視したい場合
- 変数名や関数名の宣言において特別な意味を持たせたい場合
- 数値リテラルの桁区切りとして使いたい場合
- 国際化(i18n)や地域化(l10n)の関数として使いたい場合
それでは、それぞれのケースについて具体例を見ていきましょう。
インタプリタでの使用
Pythonの対話型インタプリタは、直前に評価された式の値を自動的に「_」に格納します。電卓のように数値計算をしながら作業する際に非常に便利です。
>>> 20 20 >>> _ 20 >>> _ + 3 23
値を無視するための使用
タプルやリストのアンパック時に、不要な値を捨てる目的でもアンダースコアが使われます。
x, _, y = (1, 2, 3)
この例では、x に 1、y に 3 が代入され、真ん中の値 2 は無視されます。
変数・関数の宣言における使用
末尾シングルアンダースコア(name_)
single_trailing_underscore_
Pythonには厳密なprivateの概念がないため、外部からのアクセスを完全に禁止することはできませんが、この命名規則によってその意図を示すことができます。また、Pythonのキーワードや組み込み関数との名前の衝突も簡単に回避できます。例えば、キーワード class と重複する場合は class_ のように書きます。
先頭ダブルアンダースコア(__name)
__double_leading_underscore
これは「ネームマングリング」と呼ばれる仕組みで、クラス継承時における属性名の衝突を避けるために使われます。クラス内で __display というメソッド名を定義すると、実際には _ClassName__display という形式に変換されます。
前後ダブルアンダースコア(__name__)
__double_leading_and_trailing_underscore__
これはマジックメソッド(特殊メソッド)と呼ばれるもので、Python自体が用意している特別な命名規則です。代表的な例としては、オブジェクト生成時に呼び出される __init__ や、文字列表現を返す __str__ などが挙げられます。独自にこの形式の名前を作成することは避けるべきとされています。
数値リテラルの桁区切り
大きな数値を読みやすくするために、桁区切りとしてアンダースコアを挿入できます(Python 3.6以降で利用可能)。アンダースコアは値そのものに影響を与えません。
dec_base = 1_000_000 print(dec_base) # 1000000
国際化(i18n)/ 地域化(l10n)関数としての使用
これは構文上の機能ではなく、あくまで慣習的なものです。gettextモジュールなどを使った国際化・地域化処理では、翻訳対象の文字列を取得する関数を「_」という名前で束縛するのが一般的です。この慣習はC言語の時代から受け継がれてきたものです。
-
【初心者向け】Pythonのissuperset()メソッドの使い方をわかりやすく解説
はじめにこの記事では、Pythonのissuperset()メソッドについて、基本的な仕組みから実際のコード例まで詳しく解説します。issuperset()は、セット(集合)に対して使用できるメソッドで、引数として渡されたセットのすべての要素が、呼び出し元のセットに含まれているかどうかを判定します。呼び出し元のセットBが、引数のセットAのすべての要素を含んでいる場合 → True を返すセットAの要素がすべてBに含まれていない場合 → False を返すつまり、「BがAの上位集合(スーパーセット)であるかどうか」を判定するためのメソッドです。基本構文B.issuperset(A)この式は、Bが
-
Pythonにおけるアンダースコア(_)の意味と使い方をわかりやすく解説
Pythonでは、アンダースコア(_)は特別な役割を持つ記号です。一見ただの文字に見えますが、実際にはインタープリタの動作や命名規則、数値リテラルの表記など、さまざまな場面で重要な働きをします。この記事では、Pythonでアンダースコアが使われる主な5つのケースを、コード例とともにわかりやすく解説します。1. インタープリタで直前の式の値を保持するPythonの対話モード(インタープリタ)では、直前に評価した式の結果が、特別な変数「_」に自動的に格納されます。計算結果をすぐに再利用したいときに非常に便利です。使用例>>> 12 + 10 22 >>> _ 2