>>> x = 'foo'
>>> x
'foo'
ดังนั้นชื่อที่xแนบมากับ'foo'สตริง เมื่อคุณเรียกเช่นrepr(x)ทำให้ล่าม'foo'แทนแล้วโทรออกxrepr('foo')
>>> repr(x)
"'foo'"
>>> x.__repr__()
"'foo'"
reprจริงเรียกวิธีมายากล__repr__ของxซึ่งจะช่วยให้สตริงที่มีตัวแทนของค่าที่ได้รับมอบหมายให้'foo' xดังนั้นก็จะส่งกลับ'foo'ภายในสตริงที่เกิดขึ้นใน"" "'foo'"ความคิดของคือการให้สตริงที่มีชุดของสัญลักษณ์ที่เราสามารถพิมพ์ในล่ามและได้รับค่าเดียวกันซึ่งถูกส่งเป็นอาร์กิวเมนต์ที่จะเป็นreprrepr
>>> eval("'foo'")
'foo'
เมื่อเราเรียกeval("'foo'")มันเหมือนกับที่เราพิมพ์'foo'ในล่าม มันเป็นเพราะเราพิมพ์เนื้อหาของสายนอก""ในล่ามโดยตรง
>>> eval('foo')
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
eval('foo')
File "<string>", line 1, in <module>
NameError: name 'foo' is not defined
ถ้าเราเรียกeval('foo')มันเหมือนกับที่เราพิมพ์fooล่าม แต่ไม่มีfooตัวแปรและมีการยกข้อยกเว้น
>>> str(x)
'foo'
>>> x.__str__()
'foo'
>>>
strเป็นเพียงการแสดงสตริงของวัตถุ (จำไว้ว่าxตัวแปรหมายถึง'foo') ดังนั้นฟังก์ชั่นนี้จะส่งกลับสตริง
>>> str(5)
'5'
ตัวแทนสตริงของจำนวนเต็มคือ5'5'
>>> str('foo')
'foo'
และการเป็นตัวแทนสตริงของสตริงเป็นสายเดียวกัน'foo''foo'