เพียงเพิ่มสองเซนต์ของฉันไปที่คำตอบของ @ dbr ต่อไปนี้เป็นตัวอย่างของวิธีการใช้ประโยคนี้จากเอกสารอย่างเป็นทางการที่เขาอ้างถึง:
"[... ] เพื่อส่งคืนสตริงที่จะให้ผลลัพธ์วัตถุที่มีค่าเดียวกันเมื่อส่งผ่านไปยัง eval (), [... ]"
ให้นิยามคลาสนี้:
class Test(object):
def __init__(self, a, b):
self._a = a
self._b = b
def __str__(self):
return "An instance of class Test with state: a=%s b=%s" % (self._a, self._b)
def __repr__(self):
return 'Test("%s","%s")' % (self._a, self._b)
ตอนนี้เป็นเรื่องง่ายที่จะทำให้เป็นอินสแตนซ์ของTest
คลาส:
x = Test('hello', 'world')
print 'Human readable: ', str(x)
print 'Object representation: ', repr(x)
print
y = eval(repr(x))
print 'Human readable: ', str(y)
print 'Object representation: ', repr(y)
print
ดังนั้นเมื่อรันโค้ดชิ้นสุดท้ายเราจะได้รับ:
Human readable: An instance of class Test with state: a=hello b=world
Object representation: Test("hello","world")
Human readable: An instance of class Test with state: a=hello b=world
Object representation: Test("hello","world")
แต่อย่างที่ฉันพูดในความคิดเห็นล่าสุดของฉัน: ข้อมูลเพิ่มเติมอยู่ที่นี่ !