Tôi thường thấy mẫu này ít nhất một lần trong mỗi dự án Python mà tôi làm việc. Ví dụ, trong một dự án Django, điều này thường được thêm vào ở dưới cùng của tệp cài đặt cơ sở:
try:
from .local_settings import *
except ImportError:
pass
Cũng thế:
try:
import simplejson as json
except ImportError:
import json
Điều này đã luôn làm phiền tôi một chút mặc dù; Điều gì xảy ra nếu mô-đun được nhập thành công, nhưng sau đó nó tự kích hoạt ImportError
? Ví dụ, trong ví dụ đầu tiên, local_settings
mô-đun tồn tại, nhưng sau đó local_settings
cố gắng nhập mô-đun không tồn tại.
Đây có phải là cách an toàn nhất để nhập một mô-đun tùy chọn, có cách nào tốt hơn để đạt được chức năng này không, hay nó phụ thuộc vào ngữ cảnh / cách sử dụng (và nếu vậy, hướng dẫn để quyết định khi nào nên sử dụng phương pháp này)?