Pythonの多くの初心者プログラマーは、アンダースコア(_)を単なる変数名の一部と見なします。しかし、実際には、この記号は 重要かつ多機能なタスク、特に経験豊富な開発者の手に🧫🐍
詳しく見てみましょう Python でのアンダースコアの 7 つの高度な用途、すでに何年もコードを書いている人でも驚くでしょう。

🔁 1. REPLで最後に計算された値を取得する
インタラクティブシェルで作業している場合 Python (たとえば、ターミナルまたはJupyter Notebookで)、_シンボルを使用すると 最後の操作の結果 変数に保存することなく。
例:
>>> 5 + 10
15
>>> _ * 2
30毎回新しい変数名を入力する必要がないため、迅速な計算に非常に便利です✨
🖂 2. ループ内のダミープレースホルダー
ループ変数が本文で使用されていない場合は、代わりに _ を代入できます。これは、変数を強調します。 意図的に無視されています.
例:
for _ in range(3):
print("Hi!")結論:
Привет!
Привет!
Привет!このアプローチは、 アクションの繰り返し、反復インデックスは重要ではありません。
💡 3. 読みやすくするための数字の区切り
大きな数字は読みにくいです。Pythonでは 数字をアンダースコアで視覚的に区切る、値に影響を与えることはありません。
例:
сумма = 1_000_000 # 1000000と同じ
print(сумма)結論:
1000000金融💸、科学🧪、または単に読みやすくするために役立ちます。
🔐 4.内部変数と name mangling
クラス内では、二重アンダースコアで始まる変数(__var)は、 プライベートと見なされます。Pythonは、外部からのアクセスを困難にするために、それらの名前を自動的に変更します(名前のマングリング)。
例:
class Example:
def __init__(self):
self.__secret = "hidden"
def reveal(self):
return self.__secret
e = Example()
# print (e .__ secret) #エラー!
print(e.reveal()) # 動作しています✅📌この制限を回避することはできますが (e._Example__secret)、 推奨されませんこれは内部メカニズムです!
⚠️ 5. キーワードの競合を解決する
Python キーワードと一致する変数名を使用する必要がある場合(例:class)、最後にアンダースコアを追加します。
例:
def describe(class_):
return f"This is class: {class_}"
print(describe("Python"))これで class_ は有効な名前になり、 対立を避ける 言語の構文とともに。
🔏 6. クラスのプライベート属性
項目4に加えて、属性の先頭に二重アンダースコアを付けると、「プライベート」になります。これは 保護ではなく、合意 他の開発者のために:「不要にこれを触らないでください。」
例:
class Hidden:
def __init__(self):
self.__data = "secret"
h = Hidden()
# print (h .__ data) #エラー
print(h._Hidden__data) # うまくいくが、そうすべきではない✨ 7. 魔法(ダンダー)の方法
両端にアンダースコアが2つあるメソッド(__method__)は、 魔法の方法これは、+、==、print() などの演算子との相互作用におけるオブジェクトの動作を定義します。
例:
class Magic:
def __init__(self, value):
self.value = value
def __str__(self):
return f"Magic with the number {self.value}"
print(Magic(42))結論:
Magic с числом 42🤹♀️ 魔法のメソッドに関する便利なチートシート:
方法 | 何をするか |
|---|---|
| オブジェクトの初期化 |
| テキスト表示( |
| オブジェクトの長さ |
| オブジェクトを関数として呼び出せるようにする |
| インデックスによるアクセス |
| インデックスによる割り当て |
| オペレーター |
| 比較 |
| 加算 |
| オブジェクトを反復可能にする |
🎯 これらの方法により、 組み込み型のように振る舞う独自のクラス — 美しく、簡潔で、力強い。
✅ 結果
Pythonでのアンダースコアは 単なる構文ではありません、そして 多機能ツール:
よりクリーンで明確な書き方を助けます
コードを表現力豊かにする
ユーザーから余分なものを隠します
クラスの機能を拡張します
これらのテクニックをコードで試してみてください。Pythonがさらに強力になることがわかります💪🐍
