Đó là sự hiểu biết của tôi rằng kể từ khi hợp nhất loại/lớp mỗi giá trị là loại có nguồn gốc từ object
. Tuy nhiên tôi không thể tìm thấy xác nhận tuyệt đối về điều này trong tài liệu. Trong khi nó đứng lên lý do mà isinstance(anything, object)
luôn luôn là True
, tôi cũng có thể tưởng tượng có trường hợp cạnh kế thừa trong codebase Python 2. Có ai biết ví dụ về số điện thoại isinstance(value, object)
là khôngTrue
?Có giá trị nào trong Python mà isinstance (giá trị, đối tượng) không đúng không?
Bối cảnh: như một phần của phân cấp loại Tôi đang thiết kế, có một loại tất cả-encompasing Alpha
mà tôi muốn isinstance(obj, Alpha)
để luôn trả lại True
. Tôi nghĩ rằng trên Python 2.6+ ABCMeta.register(object)
nên làm các trick, nhưng tôi muốn chắc chắn.
CHỈNH SỬA: Vì mục đích của hậu thế, ABCMeta.register(object)
sẽ không hoạt động (hãy thử). Ethan Furman cung cấp một giải pháp thay thế cho trường hợp này trong câu trả lời dưới đây.
Mọi thứ đều là một thể hiện của 'đối tượng'. Có sự khó khăn ở cấp độ C để làm cho thậm chí 'kiểu (đối tượng)' một thể hiện của đối tượng. Tôi không có một tài liệu tham khảo ngay bây giờ nhưng có một bài đăng blog ra có đôi khi trong sáu tháng qua về việc này. – agf