{}const=>[]async()letfn</>var
開発基礎

Pythonでアンダースコア(_)を使用する7つの方法、ほとんど誰も知らない

Pythonでアンダースコアを使用する7つの予期しない方法アンダースコアは単なる変数名の一部ではありません!この記事では、アンダースコアを使用してコードの読みやすさを向上させ、プライベート変数を作成し、マジックメソッドを使用する方法などについて説明します。

К

Kodik

著者

1分で読める

Pythonの多くの初心者プログラマーは、アンダースコア(_)を単なる変数名の一部と見なします。しかし、実際には、この記号は 重要かつ多機能なタスク、特に経験豊富な開発者の手に🧫🐍

詳しく見てみましょう Python でのアンダースコアの 7 つの高度な用途、すでに何年もコードを書いている人でも驚くでしょう。


🔁 1. REPLで最後に計算された値を取得する

インタラクティブシェルで作業している場合 Python (たとえば、ターミナルまたはJupyter Notebookで)、_シンボルを使用すると 最後の操作の結果 変数に保存することなく。

例:

>>> 5 + 10
15
>>> _ * 2
30

毎回新しい変数名を入力する必要がないため、迅速な計算に非常に便利です✨


🔥 10万人以上の学生が参加中

理論を読むのに疲れた?
コーディングの時間だ!

Kodik — 実践でプログラミングを学ぶアプリ。AIメンター、インタラクティブなレッスン、実際のプロジェクト。

🤖 AI 24時間
🎓 修了証
💰 無料
🚀 始める
今日参加

🖂 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

🤹‍♀️ 魔法のメソッドに関する便利なチートシート:

方法

何をするか

__init__

オブジェクトの初期化

__str__

テキスト表示(print()

__len__

オブジェクトの長さ

__call__

オブジェクトを関数として呼び出せるようにする

__getitem__

インデックスによるアクセス

__setitem__

インデックスによる割り当て

__contains__

オペレーター in

__eq__

比較 ==

__add__

加算 +

__iter__

オブジェクトを反復可能にする

🎯 これらの方法により、 組み込み型のように振る舞う独自のクラス — 美しく、簡潔で、力強い。


✅ 結果

Pythonでのアンダースコアは 単なる構文ではありません、そして 多機能ツール:

  • よりクリーンで明確な書き方を助けます

  • コードを表現力豊かにする

  • ユーザーから余分なものを隠します

  • クラスの機能を拡張します

これらのテクニックをコードで試してみてください。Pythonがさらに強力になることがわかります💪🐍

🎯先延ばしをやめよう

記事は気に入った?
実践の時間だ!

Kodikでは読むだけでなく、すぐにコードを書く。理論 + 実践 = 本当のスキル。

即座に実践
🧠AIがコードを説明
🏆修了証

登録不要 • カード不要