>>> x = 'foo'
>>> x
'foo'
Jadi namanya xterlampir pada 'foo'string. Ketika Anda menelepon misalnya repr(x), juru bahasa menempatkan 'foo'alih-alih xdan kemudian memanggil repr('foo').
>>> repr(x)
"'foo'"
>>> x.__repr__()
"'foo'"
reprbenar-benar memanggil metode ajaib __repr__dari x, yang memberikan string yang berisi representasi dari nilai 'foo'ditugaskan untuk x. Jadi itu kembali 'foo'ke dalam string yang ""menghasilkan "'foo'". Idenya repradalah untuk memberikan string yang berisi serangkaian simbol yang dapat kita ketik dalam juru bahasa dan mendapatkan nilai yang sama yang dikirim sebagai argumen repr.
>>> eval("'foo'")
'foo'
Ketika kita menelepon eval("'foo'"), itu sama seperti kita mengetik 'foo'penerjemah. Itu karena kami langsung mengetik konten string luar ""di penerjemah.
>>> 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
Jika kita memanggil eval('foo'), itu sama seperti kita mengetik foopenerjemah. Tetapi tidak ada foovariabel yang tersedia dan pengecualian muncul.
>>> str(x)
'foo'
>>> x.__str__()
'foo'
>>>
strhanya representasi string dari objek (ingat, xvariabel merujuk ke 'foo'), jadi fungsi ini mengembalikan string.
>>> str(5)
'5'
Representasi string dari integer 5adalah '5'.
>>> str('foo')
'foo'
Dan representasi string dari string 'foo'adalah string yang sama 'foo'.