Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah Perbezaan Antara Fungsi `eval`, `exec` dan `compile` Python?
Python menyediakan tiga alatan berkuasa untuk melaksanakan kod secara dinamik: eval, exec dan compile . Setiap satu mempunyai tujuan tertentu, dan penting untuk memahami perbezaan mereka.
Eval digunakan untuk menilai satu ungkapan. Ia memerlukan rentetan yang mewakili ungkapan dan mengembalikan nilainya. Contohnya:
a = 5 result = eval('a + 10') print(result) # Output: 15
Exec digunakan untuk melaksanakan blok kod. Ia memerlukan rentetan yang mewakili kod dan mengembalikan Tiada. Contohnya:
my_code = """ for i in range(5): print(i) """ exec(my_code) # Output: # 0 # 1 # 2 # 3 # 4
Compile digunakan untuk menyusun kod ke dalam bytecode, yang kemudiannya boleh dilaksanakan oleh penterjemah. Ia memerlukan rentetan yang mewakili kod dan mod ('eval', 'exec' atau 'single').
Dalam mod 'eval', kompilasi menyusun satu ungkapan ke dalam bytecode yang mengembalikan nilai ungkapan. Dalam mod 'exec', ia menyusun blok kod ke dalam bytecode yang mengembalikan Tiada. Dalam mod 'tunggal', ia menyusun satu pernyataan atau ungkapan ke dalam bytecode yang mencetak repr nilai ungkapan.
Contohnya:
bytecode = compile('a + 10', 'my_code', 'eval') result = eval(bytecode) print(result) # Output: 15 bytecode = compile(""" for i in range(5): print(i) """, 'my_code', 'exec') exec(bytecode) # Output: # 0 # 1 # 2 # 3 # 4
Function | What it does |
---|---|
eval | Evaluates a single expression |
exec | Executes a block of code |
compile | Compiles code into bytecode |
Atas ialah kandungan terperinci Apakah Perbezaan Antara Fungsi `eval`, `exec` dan `compile` Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!