auの日記

プログラミング初心者の日記。(auはハンドルネームです)

Pythonのreprについて調べた

auです。

Pythonのreprについて調べました。

reprとは

reprとは、evalに渡した際に、実行できる形の文字列を精製します。

representationの略称で、「表現・描写」という意味があります。

文字列なので、同じような使い方をする「str」があります。こっちの方が使う気がする。

strは非公式で、reprは公式であるというような書かれ方をしているので、strは見やすいようにしているだけで、Python内で使う(デバッグなど)には、reprの方が適しているようです。

実際に使ってみると、reprはevalを使ってPythonの式で実行されていますが、strだとエラーが返ってくるという違いがあります。

print(eval(repr('hoge')))
print(eval('hoge'))


hoge
Traceback (most recent call last):
  File "test.py", line 13, in <module>
    print(eval('hoge'))
  File "<string>", line 1, in <module>
NameError: name 'hoge' is not defined

strは読みやすい形だけどPython的には不適切= ユーザに見せる出力に使う
reprは読みにくいけどPython的には適切 = デバッグの出力に使う

というような違いがあるようです。