Hướng dẫn equals method in python - phương thức bằng trong python

Tóm tắt: Trong hướng dẫn này, bạn sẽ học cách sử dụng phương pháp Python

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
3 để so sánh hai đối tượng bằng các giá trị của chúng.: in this tutorial, you’ll learn how to use the Python

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
3 method to compare two objects by their values.

Giới thiệu về phương pháp Python

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
3

Giả sử rằng bạn có lớp

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5 sau với ba thuộc tính thể hiện:

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
6,

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
7 và

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
8:

class Person: def __init__[self, first_name, last_name, age]: self.first_name = first_name self.last_name = last_name self.age = age

Code language: Python [python]

Và bạn tạo hai trường hợp của lớp

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5:

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]

Trong ví dụ này, các đối tượng

print[john is jane] # False

Code language: Python [python]
0 và

print[john is jane] # False

Code language: Python [python]
1 không phải là cùng một đối tượng. Và bạn có thể kiểm tra nó bằng toán tử

print[john is jane] # False

Code language: Python [python]
2:

print[john is jane] # False

Code language: Python [python]

Ngoài ra, khi bạn so sánh

print[john is jane] # False

Code language: Python [python]
0 với

print[john is jane] # False

Code language: Python [python]
1 bằng cách sử dụng toán tử bằng nhau [==], bạn sẽ nhận được kết quả sai:

print[john == jane] # False

Code language: Python [python]

print[john is jane] # False

Code language: Python [python]
0 và

print[john is jane] # False

Code language: Python [python]
1 có cùng tuổi, bạn muốn chúng bằng nhau. Nói cách khác, bạn muốn biểu thức sau để trả về

print[john is jane] # False

Code language: Python [python]
7:

john == jane

Để làm điều đó, bạn có thể thực hiện phương thức

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
3 Dunder trong lớp

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5.

Python tự động gọi phương thức

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
3 của một lớp khi bạn sử dụng toán tử == để so sánh các phiên bản của lớp. Theo mặc định, Python sử dụng toán tử

print[john is jane] # False

Code language: Python [python]
2 nếu bạn không cung cấp một triển khai cụ thể cho phương thức __eq__.

Những điều sau đây cho thấy cách thực hiện phương thức

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
3 trong lớp

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5 trả về

print[john is jane] # False

Code language: Python [python]
7 nếu hai đối tượng có cùng tuổi:

class Person: def __init__[self, first_name, last_name, age]: self.first_name = first_name self.last_name = last_name self.age = age def __eq__[self, other]: return self.age == other.age

Code language: Python [python]

Bây giờ, nếu bạn so sánh hai trường hợp của lớp

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5 cùng tuổi, nó sẽ trả về đúng:

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25] print[john == jane] # True

Code language: Python [python]

Và nếu hai trường hợp của lớp người don don có cùng tuổi, thì toán tử == sẽ trả về sai:

john = Person['John', 'Doe', 25] mary = Person['Mary', 'Doe', 27] print[john == mary] # False

Code language: Python [python]

Sau đây so sánh một đối tượng

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5 với số nguyên:

john = Person['John', 'Doe', 25] print[john == 20]

Code language: PHP [php]

Nó trả về một lỗi:

AttributeError: 'int' object has no attribute 'age'

Code language: JavaScript [javascript]

Để khắc phục điều này, bạn có thể sửa đổi phương thức

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
3 để kiểm tra xem đối tượng có phải là một thể hiện của lớp

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5 trước khi truy cập thuộc tính

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
8 không.

Nếu đối tượng khác không phải là một thể hiện của lớp

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5, phương thức

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
3 trả về

john == jane

2, như thế này:

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
0

Và bây giờ bạn có thể so sánh một thể hiện của lớp

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
5 với số nguyên hoặc bất kỳ đối tượng nào thuộc loại khác:

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
1

Để tất cả chúng cùng nhau.

john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

Code language: Python [python]
2

Bản tóm tắt

  • Thực hiện phương pháp Python

    john = Person['John', 'Doe', 25] jane = Person['Jane', 'Doe', 25]

    Code language: Python [python]
    3 để xác định logic bình đẳng để so sánh hai đối tượng bằng toán tử bằng nhau [

    john == jane

    5]

Bạn có thấy hướng dẫn này hữu ích không?

Chủ Đề