2011-11-08 25 views
7

Im chỉ đi qua một số tài liệu python giúp đỡ và đi qua các đoạn mã sau:isinstance (object, type) trong python

isinstance(object,type) 

bất cứ ai có thể giải thích những gì không gõ có nghĩa là trong tuyên bố trên?

Cảm ơn, Vineel

+0

Đó có phải là một phần của một mẫu mã cụ thể, hoặc nhiều giả-esque (ví dụ một chữ ký)? Hoặc tốt hơn, hiển thị ngữ cảnh. Đoạn trích buồn bã có ý nghĩa cho cả hai. – delnan

+0

Nếu nghi ngờ hãy đọc tài liệu –

Trả lời

11

type phải là một đối tượng biểu thị một loại/lớp, chẳng hạn như int hay str. Ví dụ: isinstance(1, int) đánh giá là True, trong khi isinstance(sys.stdin, str) đánh giá là False. Nếu bạn đã xác định một số class Foo thì Foo cũng là một đối tượng kiểu.

Sửa: như @delnan ghi chú, type bản thân cũng là một loại bằng Python, vì vậy isinstance(str, type) là đúng bởi vì str là một loại, trong khi isinstance('foo', type) là sai. object cũng là một loại trong Python, và là gốc của hệ thống phân cấp loại.

+0

@vineel: đã cập nhật câu trả lời. –

+0

thanQ ... Nó xóa tôi :) – vineel

0

Tuyên bố này kiểm tra xem object có loại type hay không. Biến số type phải là một lớp.

0
isinstance(object, classinfo) 

Return true nếu đối tượng là một thể hiện của đối số classinfo, hoặc của một lớp con (trực tiếp, gián tiếp hoặc ảo) đó. Cũng trả về true nếu classinfo là một đối tượng kiểu (lớp kiểu mới) và đối tượng là một đối tượng thuộc loại đó hoặc của một lớp con (trực tiếp, gián tiếp hoặc ảo). Nếu đối tượng không phải là một cá thể lớp hoặc một đối tượng của kiểu đã cho, hàm đó luôn trả về false. Nếu classinfo không phải là một đối tượng lớp hay một đối tượng kiểu, nó có thể là một bộ lớp hoặc các đối tượng kiểu hoặc có thể đệ quy chứa các bộ dữ liệu khác (các kiểu trình tự khác không được chấp nhận). Nếu classinfo không phải là một lớp, kiểu hoặc tuple của các lớp, kiểu và các bộ dữ liệu như vậy, thì một ngoại lệ TypeError được nâng lên.

Đã thay đổi trong phiên bản 2.2: Hỗ trợ cho một bộ thông tin loại đã được thêm .

Trích dẫn từ: http://docs.python.org/library/functions.html#isinstance

Các vấn đề liên quan