Python kiểm tra xem hai đối tượng có cùng loại không

❮ Từ khóa Python

Ví dụ

Kiểm tra xem hai đối tượng có phải là cùng một đối tượng không

x = ["táo", "chuối", "anh đào"]

y = x

in[x là y]

Tự mình thử »

Định nghĩa và cách sử dụng

Từ khóa

 output:
    True
    False
2 được sử dụng để kiểm tra xem hai biến có tham chiếu đến cùng một đối tượng hay không

Kiểm tra trả về True nếu hai đối tượng là cùng một đối tượng

Kiểm tra trả về Sai nếu chúng không phải là cùng một đối tượng, ngay cả khi hai đối tượng bằng nhau 100%

Sử dụng toán tử == để kiểm tra xem hai biến có bằng nhau không

Thêm ví dụ

Ví dụ

Kiểm tra hai đối tượng bằng nhau, nhưng không phải cùng một đối tượng

x = ["táo", "chuối", "anh đào"]

y = ["táo", "chuối", "anh đào"]

in[x là y]

Tự mình thử »

❮ Từ khóa Python


Khi so sánh hai đối tượng của một lớp tùy chỉnh bằng cách sử dụng 

 output:
    True
    False
3, Python theo mặc định chỉ so sánh các tham chiếu đối tượng chứ không so sánh dữ liệu có trong các đối tượng. Để ghi đè hành vi này, lớp có thể triển khai phương thức 
 output:
    True
    False
4 đặc biệt, phương thức này chấp nhận hai đối số — đối tượng được so sánh — và trả về 
 output:
    True
    False
0 hoặc 
 output:
    True
    False
1. Phương thức này sẽ được gọi ngầm khi hai đối tượng được so sánh

Lớp 

 output:
    True
    False
2 từ chương trước có sẵn cho bạn trong ngăn tập lệnh. Nó có một thuộc tính, 
 output:
    True
    False
3, và một phương thức 
 output:
    True
    False
4. Hai tài khoản ngân hàng có số dư giống nhau không nhất thiết phải là cùng một tài khoản, nhưng một tài khoản ngân hàng thường có số tài khoản và hai tài khoản có cùng số tài khoản nên được coi là giống nhau

Hãy thử chọn mã trong dòng 1-7 và nhấn nút “Chạy mã”. Sau đó, thử tạo một vài 

 output:
    True
    False
2 đối tượng trong bảng điều khiển và so sánh chúng

  • Sửa đổi phương thức 
     output:
        True
        False
    6 để chấp nhận tham số mới – 
     output:
        True
        False
    7 – và khởi tạo thuộc tính 
     output:
        True
        False
    7 mới
  • Xác định một phương thức 
     output:
        True
        False
    4 trả về 
     output:
        True
        False
    0 nếu thuộc tính 
     output:
        True
        False
    7 của hai đối tượng bằng nhau
  • Kiểm tra các câu lệnh in và đầu ra trong bảng điều khiển
  • Phương thức 
     output:
        True
        False
    4 phải chấp nhận hai đối số, thường được gọi là 
     output:
        True
        False
    13 và 
     output:
        True
        False
    14
  • Khi thêm tham số vào
     output:
        True
        False
    6, hãy nhớ rằng các tham số không có giá trị mặc định phải được đặt trước các tham số có giá trị mặc định
 output:
    True
    False
4

 output:
    True
    False

Lưu ý rằng phương pháp của bạn chỉ so sánh số tài khoản chứ không so sánh số dư. Điều gì sẽ xảy ra nếu hai tài khoản có cùng số tài khoản nhưng khác số dư? . Ở cuối chương này, bạn sẽ học cách định nghĩa các lớp ngoại lệ của riêng mình để tạo các loại lỗi tùy chỉnh này

Kiểm tra bình đẳng lớp

Trong bài tập trước, bạn đã xác định một lớp 

 output:
    True
    False
2 với thuộc tính 
 output:
    True
    False
7 được dùng để so sánh. Nhưng nếu bạn so sánh một đối tượng 
 output:
    True
    False
2 với một đối tượng của lớp khác cũng có thuộc tính 
 output:
    True
    False
7, thì bạn có thể nhận được kết quả không mong muốn

Ví dụ, xét hai lớp

 output:
    True
    False
00
 output:
    True
    False
01

Đang chạy

 output:
    True
    False
02 sẽ trả về 
 output:
    True
    False
0, mặc dù chúng tôi đang so sánh số điện thoại với số tài khoản ngân hàng.  

Bạn nên kiểm tra lớp đối tượng được truyền cho phương thức 

 output:
    True
    False
4 để đảm bảo phép so sánh có ý nghĩa

Cả hai lớp 

 output:
    True
    False
05 và 
 output:
    True
    False
2 đã được xác định. Hãy thử chạy mã nguyên trạng bằng cách sử dụng nút “Chạy mã” và kiểm tra đầu ra

  • Sửa đổi định nghĩa của 
     output:
        True
        False
    2 để chỉ trả về 
     output:
        True
        False
    0 nếu thuộc tính 
     output:
        True
        False
    7 giống nhau và 
     output:
        True
        False
    90 của cả hai đối tượng được truyền cho nó giống nhau

Chạy mã và kiểm tra lại đầu ra

 output:
    True
    False
1Toán tửPhương thức
 output:
    True
    False
3
 output:
    True
    False
4
 output:
    True
    False
93
 output:
    True
    False
94
 output:
    True
    False
95
 output:
    True
    False
96
 output:
    True
    False
97
 output:
    True
    False
98
 output:
    True
    False
99
 output:
    True
    False
80
 output:
    True
    False
81
 output:
    True
    False
82
  • __hash__[] để sử dụng các đối tượng làm khóa từ điển và theo bộ
 output:
    True
    False
0

 output:
    True
    False
9

Bây giờ chỉ so sánh các đối tượng của cùng một lớp

 output:
    True
    False
2 có thể trả về
 output:
    True
    False
0. Một cách khác để đảm bảo rằng một đối tượng có cùng loại như bạn mong đợi là sử dụng hàm 
 output:
    True
    False
85 . Điều này có thể hữu ích khi xử lý tính kế thừa, vì Python coi một đối tượng là một thể hiện của cả lớp cha và lớp con

Hãy thử chạy 

 output:
    True
    False
86 trong bảng điều khiển [với thứ tự đẳng thức bị đảo ngược]

Điều này cho bạn biết điều gì về phương pháp 

 output:
    True
    False
4 ?

So sánh và kế thừa

Điều gì xảy ra khi một đối tượng được so sánh với một đối tượng của lớp con?

 output:
    True
    False
8

Lớp 

 output:
    True
    False
88 kế thừa từ lớp 
 output:
    True
    False
89 và cả hai đều triển khai phương thức 
 output:
    True
    False
4 bao gồm bản in chẩn đoán

Phương thức

 output:
    True
    False
4 nào sẽ được gọi khi đoạn mã sau được chạy?

 output:
    True
    False
0

Khi chạy trong bảng điều khiển, kết quả là

 output:
    True
    False
1

Điều này cho thấy rằng khi hai lớp, một lớp là lớp cha chứa phương thức __eq__[] và trường hợp con cũng vậy. Và khi cả hai biến thành một đối tượng và các đối tượng được so sánh, thì Python luôn gọi phương thức 

 output:
    True
    False
4 của con khi so sánh một đối tượng con với một đối tượng cha

Làm thế nào bạn có thể biết nếu hai đối tượng là cùng một lớp?

Để xác định xem hai đối tượng có giống nhau hay không .
Thiết lập biểu thức Boolean để kiểm tra hai đối tượng
Trong biểu thức thử nghiệm của bạn, hãy sử dụng toán tử IsNot với hai đối tượng là toán hạng. IsNot trả về True nếu các đối tượng không trỏ đến cùng một thể hiện của lớp

__ EQ __ trong Python là gì?

__eq__[bản thân. dtype, khác. dtype, /] → bool. Tính toán giá trị thực của self == other để kiểm tra tính bằng nhau của đối tượng kiểu dữ liệu .

Đối tượng tương tự trong Python là gì?

Cả “is” và “==” đều được sử dụng để so sánh đối tượng trong Python. Toán tử “==” so sánh giá trị của hai đối tượng, trong khi “is” kiểm tra xem hai đối tượng có giống nhau không [Nói cách khác, hai tham chiếu đến cùng một đối tượng].

Làm thế nào hai lớp có thể được so sánh trong Python?

Khi so sánh hai đối tượng của một lớp tùy chỉnh bằng cách sử dụng == , Python theo mặc định chỉ so sánh các tham chiếu đối tượng, không phải dữ liệu chứa trong . Để ghi đè hành vi này, lớp có thể triển khai phương thức __eq__[] đặc biệt, phương thức này chấp nhận hai đối số — đối tượng được so sánh — và trả về Đúng hoặc Sai.

Chủ Đề