Đôi khi cần thực thi một khối code được lưu dưới dạng chuỗi (string). Python cung cấp hàm exec() cho mục đích này.
Cú pháp
exec(object, globals=None, locals=None)
Ví dụ: Thực thi block code từ string
code = """
numbers = [11, 33, 55, 39, 55, 75, 37, 21, 23, 41, 13]
for num in numbers:
if num % 2 == 0:
print('Danh sách chứa số chẵn')
break
else:
print('Danh sách không chứa số chẵn')
"""
exec(code)
Kết quả
Danh sách không chứa số chẵn
Lưu ý quan trọng
- Code string phải thụt lề đúng (indentation)
- Dùng triple quotes
\"\"\"cho multi-line exec()không trả về giá trị (trả về None)
Cảnh báo bảo mật ⚠️
Giống eval(), exec() cho phép thực thi code tùy ý. Không bao giờ exec() input từ người dùng không tin cậy.
Kết luận
exec() hữu ích cho code generation, plugin system, nhưng cần cực kỳ cẩn trọng về bảo mật.