Python có hàm dựng sẵn type
và mỗi phiên bản cũng có thuộc tính __class__
. Tôi thường tin rằng họ đã trở lại cùng một điều. Ngay cả những tài liệu của cả hai âm thanh tương tự:Khi nào thì kiểu (instance) không phải là instance .__ class__?
instance.__class__
Lớp mà một cá thể của lớp thuộc.
và
type(object)
Với một đối số, trả về kiểu của một đối tượng.
Tuy nhiên trong abc.ABCMeta.__instancecheck__
có một tấm séc nếu họ là giống hệt nhau (hơi ngắn):
subclass = instance.__class__
subtype = type(instance)
if subtype is subclass:
Khi nào thì đây không phải là trường hợp? Khi nào là type(instance)
không giống với instance.__class__
?
Có thể trùng lặp http://stackoverflow.com/questions/9610993/python-type-or-class-or-is – Kasramvd
@Kasramvd Cảm ơn liên kết đó, tôi tin rằng đó có thể là bản sao của luồng lưu trữ http: // stackoverflow. com/questions/1060499/khác biệt-giữa-typeobj-và-obj-class. Tôi không chắc chắn lý do tại sao họ không xuất hiện khi googling câu hỏi và không có trong "bản sao được đề xuất" khi đặt câu hỏi. – MSeifert
Điều đó đôi khi xảy ra;) – Kasramvd