Tôi có mô-đun nhập mô-đun, nhưng trong một số trường hợp, mô đun được nhập có thể không tồn tại. Sau khi mô-đun được nhập, có một lớp kế thừa từ một lớp mô-đun đã nhập. Nếu tôi bắt được ngoại lệ ImportError
trong trường hợp mô-đun không tồn tại, làm thế nào tôi có thể ngăn không cho Python phân tích cú pháp phần còn lại của mô-đun? Tôi đang mở cho các giải pháp khác nếu điều đó là không thể.Làm cách nào để thoát khỏi mô-đun trước khi phân tích xong?
Dưới đây là một ví dụ cơ bản (selfaware.py):
try:
from skynet import SkyNet
except ImportError:
class SelfAwareSkyNet():
pass
exit_module_parsing_here()
class SelfAwareSkyNet(SkyNet):
pass
Cách duy nhất tôi có thể nghĩ đến để làm điều này là:
- Trước khi nhập các module
selfaware.py
, kiểm tra xem các mô-đunskynet
có sẵn và chỉ cần chuyển hoặc tạo một lớp sơ khai. Điều này sẽ gây ra DRY nếuselfaware.py
được nhập nhiều lần. Trong vòng
selfaware.py
có lớp được xác định bằng khốitry
. ví dụ .:try: from skynet import SkyNet class SelfAwareSkyNet(SkyNet): pass except ImportError: class SelfAwareSkyNet(): pass
Có gì sai với giải pháp của bạn? Nó có hoạt động không? Nó có lỗi không? –
Có tiếng vọng ở đây không ?? Có gì với tất cả các câu trả lời trùng lặp chính xác? Và tại sao cả hai bản sao mới hơn có điểm số cao hơn so với cũ? –
@MuMind Tôi đoán tôi đã không nhận thấy câu trả lời của hyperboreean đã được chỉnh sửa sau khi ban đầu nó không chính xác. Tôi đã phản ứng lại câu trả lời. –