なるほど、じゃあ「repr」の意味をゼロから説明するで 😄
repr とは?
- Python の組み込み関数で、オブジェクトを「開発者向けにわかりやすい文字列」に変換するもの
- 「このオブジェクトをコードとして書くならこうなる」ってイメージ
- 逆に
str()はユーザー向けに見やすい文字列を返す
例
s = "Hello, world."
print(str(s)) # ユーザー向け → Hello, world.
print(repr(s)) # 開発者向け → 'Hello, world.'
-
str(s)はそのまま表示 -
repr(s)は'で囲まれたり、エスケープ文字も含まれて、文字列としての形がはっきりわかる
もう少し具体的に言うと、repr() は デバッグ用 に使うことが多いんや。
文字列だけやなくて、数値やリストでも同じように「Python コードとして書いた形」を返す。
x = [1, 2, 3]
print(str(x)) # [1, 2, 3]
print(repr(x)) # [1, 2, 3] ← 見た目同じでも、中身はコードとして解釈できる形
1️⃣ 見た目だけじゃわからないときに役立つ
s = "Hello\nWorld"
print(str(s))
# 出力:
# Hello
# World
print(repr(s))
# 出力:
# 'Hello\nWorld'
-
str()は「人が読む用」だから改行がそのまま画面に出る -
repr()は「文字列の中身を正確に表す」から\nが見える
→ デバッグするときに「本当は改行が入ってるのか?」がすぐわかる
2️⃣ 開発者向け・再利用しやすい
-
repr()はそのまま Python コードとして評価できる形 になることが多い
s = 'Hello'
r = repr(s) # r = "'Hello'"
eval(r) # -> 'Hello'
- だから「オブジェクトを保存して後で復元」するときに便利
まとめると、repr() の利点は:
- 中身を正確に確認できる(改行、タブ、特殊文字も見える)
- コードとして使える形 なので、デバッグや保存・復元に便利