Có cách nào để khởi tạo tất cả các lớp từ mô-đun python vào danh sách các đối tượng không tên không?Khởi tạo tất cả các lớp trong một mô-đun thành các đối tượng không tên trong danh sách
Ví dụ Tôi có một mô-đun rules
chứa tất cả các lớp con từ một quy tắc lớp. Do đó, tôi chắc chắn tất cả họ sẽ thực hiện một phương pháp run()
và sẽ có một thuộc tính name
mà sẽ được tạo ra trong suốt cuộc gọi của __init__
Tôi muốn có một danh sách các đối tượng tự động bắt đầu từ những lớp học. Bằng cách tự động khởi tạo tôi có nghĩa là chúng không phải được đặt tên rõ ràng.
Các câu hỏi là:
Có thể lặp qua tất cả các lớp trong mô-đun không?
Đối tượng không tên có thể được bắt đầu không?
Tốt hơn câu trả lời của tôi. Bạn có thể sử dụng 'inspect.isclass()' để tránh 'TypeError'. –
@AntonisChristofides Đúng, bạn có thể sử dụng 'inspect.isclass()' làm bộ lọc. Tôi cố gắng tránh sử dụng bất cứ thứ gì từ mô-đun 'kiểm tra' trong mã sản xuất, tuy nhiên. –
Bạn cũng có thể sử dụng 'isinstance (value, type)' để chắc chắn rằng bạn có một lớp. (Bạn cũng cần phải kiểm tra 'types.ClassType' nếu bạn cần hỗ trợ các lớp kiểu cũ, nhưng tôi chỉ muốn tránh những lớp đó.) – Blckknght