Trước tiên: mã của bạn là hợp lệ, có thể đọc được, súc tích ... do đó, nó có thể không phải các cách để làm điều đó (thành ngữ tiến hóa theo thời gian và các tính năng ngôn ngữ mới) nhưng nó chắc chắn là một trong những sự cách để làm điều đó theo cách nhiệt tình.
Thứ hai, chỉ hai nhận xét:
Cách thông thường để tạo ra sai sót trong python là raise Exceptions. Tất nhiên bạn có thể bọc ngoại lệ của bạn trong một chức năng, nhưng vì nó khá bất thường, tôi đã tự hỏi nếu bạn chọn thiết kế này vì một lý do cụ thể nào đó. Vì bạn có thể viết lớp Ngoại lệ của riêng bạn, ngay cả mã soạn sẵn như ghi nhật ký một thông báo lỗi vào tệp có thể đi trong chính lớp đó chứ không phải trong hàm gói.
Cách bạn đã viết thử nghiệm của mình là như vậy mà bạn sẽ không thể chỉ định None
làm giá trị cho các biến của mình. Điều này có thể không phải là một vấn đề bây giờ, nhưng có thể hạn chế sự linh hoạt của bạn trong tương lai. Một cách khác để kiểm tra xem có khởi động có thể chỉ đơn giản là không tuyên bố một giá trị ban đầu cho biến trong câu hỏi và sau đó làm một cái gì đó dọc theo dòng:
try:
self.variable_name
except NameError:
# here the code that runs if the variable hasn't been initialised
finally:
# [optional] here the code that should run in either case
Có vẻ tốt với tôi. –
Tôi nghĩ rằng nó là hoàn toàn ok. – Tadeck
Nó hoàn toàn tốt cho uninitialized, vì chúng tôi không quan tâm về các trường hợp góc ngớ ngẩn như 'var1 = (None,)' mà sẽ vượt qua. – smci