Một đối tượng có phải là một thể hiện của một lớp python không?
Mỗi đối tượng Python thuộc một loại nhất định, còn được gọi là “lớp”. Lớp là một bản thiết kế hiển thị dữ liệu và khả năng của từng đối tượng/thực thể được tạo sau bản thiết kế này Show Đưa ra một đối tượng Python (=instance). Làm cách nào để xác định/kiểm tra/lấy loại của nó (= lớp)? Có nhiều biến thể của câu hỏi này
Hãy bắt đầu với một cái nhìn tổng quan ngắn về cách bạn có thể trả lời tất cả những câu hỏi đó theo cách Pythonic nhất Tổng quan về giải phápTrong Python, các hàm có sẵn >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True0 giúp bạn xác định loại đối tượng
Dưới đây là hai ví dụ để kiểm tra xem một đối tượng có phải là danh sách không >>> type([1, 2, 3]) Bạn sẽ sử dụng >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True0 để xác nhận những nghi ngờ của mình về loại đối tượng. Hàm >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True0 mạnh mẽ hơn ở chỗ bạn không dựa vào các khác biệt chuỗi nhỏ và nó cũng hoạt động với kiểu kế thừa. Ví dụ: nếu A kế thừa từ B kế thừa từ C, một đối tượng kiểu C cũng là một thể hiện của A >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True8 ví dụ với một đối số đối tượng >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True
>>> class Animal: pass >>> class Snake(Animal): pass >>> a = Animal() >>> b = Snake() >>> type(a) is Animal True >>> type(b) is Snake True >>> type(b) is Animal False Ví dụ thứ ba >>> class Animal: pass >>> class Snake(Animal): pass >>> a = Animal() >>> b = Snake() >>> type(a) is Animal True >>> type(b) is Snake True >>> type(b) is Animal False0 dẫn chúng ta đến cái nhìn sâu sắc sau đây 🌍 Thông tin chi tiết. Có thể bạn quan tâmMuốn khắc phục điểm yếu này thì nên dùng hàm >>> class Animal: pass >>> class Snake(Animal): pass >>> a = Animal() >>> b = Snake() >>> type(a) is Animal True >>> type(b) is Snake True >>> type(b) is Animal False2 cũng dùng được cho kiểu kế thừa >>> isinstance(Snake(), Animal) True Bạn cũng có thể sử dụng nó trên các đối tượng và loại tích hợp sẵn, chẳng hạn như danh sách, bộ dữ liệu, bộ và từ điển >>> isinstance([1, 2, 3], list) True >>> isinstance((1, 2, 3), tuple) True >>> isinstance({1: 'a', 2: 'b'}, dict) True >>> isinstance({1, 2, 3}, set) True Trường hợp sử dụng duy nhất mà bạn thích >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True0 là nếu bạn thực sự cần biểu diễn chuỗi kiểu của một đối tượng. Mặt khác, >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True0 là một chức năng linh hoạt và biểu cảm hơn loại () so với isinstance ()Sự khác biệt giữa >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True0 là giá trị trả về là biểu diễn chuỗi cho giá trị trước và giá trị Boolean cho giá trị sau. Bạn sẽ sử dụng hàm type() nếu bạn không biết gì. Nếu bạn đã nghi ngờ một đối tượng thuộc một loại nhất định (=class), bạn có thể xác nhận sự nghi ngờ của mình bằng cách sử dụng hàm >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True0 Loại Python() HàmHàm >>> isinstance(Snake(), Animal) True1 để kiểm tra loại đối tượng này. Thứ hai, bạn có thể chuyển ba đối số— >>> isinstance(Snake(), Animal) True2, >>> isinstance(Snake(), Animal) True3 và >>> isinstance(Snake(), Animal) True4—để tạo một đối tượng kiểu mới có thể được sử dụng để tạo các thể hiện của kiểu mới này Loại Python() Hàm Xem video này trên YouTube Dưới đây là cách sử dụng hàm >>> isinstance(Snake(), Animal) True1 đã cho >>> type(42) Syntax: type(object) # Returns class representation of objectĐối số >>> isinstance(Snake(), Animal) True1Đối tượng được kiểm tra loại. Giá trị trả về >>> isinstance(Snake(), Animal) True8Trả về chuỗi đại diện của lớp của >>> isinstance(Snake(), Animal) True1 Hướng dẫn liên quan. Loại Python() Hàm Hàm isinstance() trong PythonHàm >>> isinstance([1, 2, 3], list) True >>> isinstance((1, 2, 3), tuple) True >>> isinstance({1: 'a', 2: 'b'}, dict) True >>> isinstance({1, 2, 3}, set) True0 tích hợp sẵn của Python lấy một >>> isinstance(Snake(), Animal) True1 và một lớp làm đối số đầu vào. Nó trả về >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True3 nếu >>> isinstance(Snake(), Animal) True1 là một thể hiện của lớp. Ngược lại, nó trả về >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True4. Thay vì một lớp, bạn cũng có thể truyền một bộ các lớp để kiểm tra xem đối tượng có phải là một thể hiện của bất kỳ lớp nào trong bộ hay không—chẳng hạn như trong >>> isinstance([1, 2, 3], list) True >>> isinstance((1, 2, 3), tuple) True >>> isinstance({1: 'a', 2: 'b'}, dict) True >>> isinstance({1, 2, 3}, set) True5 Python isinstance() - Hướng dẫn hữu ích với các ví dụ Xem video này trên YouTube Học bằng ví dụ. Đây là một ví dụ về cách sử dụng hàm tích hợp sẵn >>> type([1, 2, 3]) is list True >>> type({1, 2, 3}) is dict True >>> type('123') is str True >>> type(0) is int True0 >>> isinstance(42, int) True >>> isinstance(42, (float, list, int)) True >>> isinstance('42', (float, list, int)) False Syntax: isinstance(object, class) # Check if object is instance of class isinstance(object, (class_A, class_B, ...)) # Check if object is instance of any of the classes in the tupleĐối số >>> isinstance(Snake(), Animal) True1Đối tượng cần được kiểm tra tư cách thành viên của lớp. >>> isinstance([1, 2, 3], list) True >>> isinstance((1, 2, 3), tuple) True >>> isinstance({1: 'a', 2: 'b'}, dict) True >>> isinstance({1, 2, 3}, set) True8 hoặc >>> isinstance([1, 2, 3], list) True >>> isinstance((1, 2, 3), tuple) True >>> isinstance({1: 'a', 2: 'b'}, dict) True >>> isinstance({1, 2, 3}, set) True9Lớp hoặc bộ các lớp mà đối tượng này có thể thuộc hoặc không thuộc về. Giá trị trả về >>> type(42)0Trả về đối tượng có thuộc lớp (hoặc các lớp) hay không Chris Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây Tại sao đối tượng được gọi là một thể hiện của một lớp?Một lớp có thể tạo các đối tượng của chính nó với các đặc điểm và hành vi chung khác nhau. Vì vậy, chúng ta có thể nói rằng Một đối tượng đại diện cho một trạng thái cụ thể của lớp . Vì những lý do này, một Đối tượng được gọi là một Thể hiện của một Lớp.
Đối tượng có phải là một thể hiện của loại không?"Đối tượng và loại lớp có mối quan hệ duy nhất. đối tượng là một thể hiện của kiểu và kiểu là một lớp con của đối tượng.
Sự khác biệt giữa một đối tượng và một thể hiện của một lớp là gì?Đối tượng là một thứ thực tế được xây dựng dựa trên 'bản in màu xanh' (như ngôi nhà). Một thể hiện là một bản sao ảo (nhưng không phải là bản sao thực) của đối tượng . |