❮ 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 False2 đượ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 False3, 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 False4 đặ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 False0 hoặc
output: True False1. 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 False2 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 False3, và một phương thức
output: True False4. 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 False2 đố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ínhoutput: 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ínhoutput: 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 False4
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ớpTrong bài tập trước, bạn đã xác định một lớp
output: True False2 với thuộc tính
output: True False7 được dùng để so sánh. Nhưng nếu bạn so sánh một đối tượng
output: True False2 với một đối tượng của lớp khác cũng có thuộc tính
output: True False7, 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 False00
output: True False01
Đang chạy
output: True False02 sẽ trả về
output: True False0, 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 False4 để đảm bảo phép so sánh có ý nghĩa
Cả hai lớp
output: True False05 và
output: True False2 đã đượ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ínhoutput: 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 False1Toán tửPhương thức
output: True False3
output: True False4
output: True False93
output: True False94
output: True False95
output: True False96
output: True False97
output: True False98
output: True False99
output: True False80
output: True False81
output: True False82
- __hash__[] để sử dụng các đối tượng làm khóa từ điển và theo bộ
output: True False0
output: True False9
Bây giờ chỉ so sánh các đối tượng của cùng một lớp
output: True False2 có thể trả về
output: True False0. 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 False85 . Đ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 False86 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 False4 ?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 False8
Lớp
output: True False88 kế thừa từ lớp
output: True False89 và cả hai đều triển khai phương thức
output: True False4 bao gồm bản in chẩn đoán
Phương thức
output: True False4 nào sẽ được gọi khi đoạn mã sau được chạy?
output: True False0
Khi chạy trong bảng điều khiển, kết quả là
output: True False1
Đ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 False4 của con khi so sánh một đối tượng con với một đối tượng cha