Đối sánh mẫu không chỉ quá hạn vì các ngôn ngữ khác đã có từ lâu. Trong C và C++, nó được gọi là cấu trúc switch/case. Trong Rust, nó được gọi là khớp mẫu Show Đối với người dùng Python, đó không chỉ là cách giải quyết các câu lệnh Cú pháp cơ bản rất giống với câu lệnh switch/case của ngôn ngữ C. Từ khóa Đây là một ví dụ cơ bản Thấy cái này đẹp không? . Và một trường hợp điển hình khác là Python ngày càng có nhiều chức năng hơn Điều làm cho đoạn mã này trở nên hấp dẫn là về cơ bản nó là các câu lệnh Trong trường hợp một số hoặc tất cả các phần thông tin như Chúng tôi cũng có thể kiểm tra loại, như đã thực hiện ở trên với Ngoài ví dụ này, nơi chúng tôi đã sử dụng từ điển, bạn cũng có thể đặt những thứ như danh sách, bộ dữ liệu, đối tượng, v.v. vào khớp mẫu. Điều này hoạt động theo cách khá giống với ví dụ trên Bạn cũng có thể sử dụng hoặc-toán tử Bây giờ, hãy xem ví dụ của chúng tôi hoạt động như thế nào Nếu chúng tôi muốn chức năng bóng bẩy tương tự nhưng đã cố gắng đạt được mà không khớp mẫu mới, thì đây là những gì chúng tôi nhận được Để tiết lộ đầy đủ, tôi quá lười để tự viết mã xấu xí như vậy, vì vậy tôi đã sử dụng phương pháp từ bài viết xuất sắc này. Ngoài ra, tôi thậm chí còn không điền vào mọi thứ vì tôi không muốn làm bạn ngập đầu với mã spaghetti như thế Không cần phải nói, rõ ràng là trong những trường hợp như thế này, câu lệnh Tuy nhiên, một số nhà phê bình chỉ ra rằng câu lệnh Sử dụng sáng tạo của kết hợp mô hình cấu trúcNhững người chỉ trích đối sánh mẫu của Python cũng chỉ ra rằng có thể không có quá nhiều trường hợp sử dụng cho nó Về cơ bản, nó tốt cho các tình huống có nhiều mẫu khác nhau có thể khớp và khi nhiều chi tiết về các mẫu này rất quan trọng. Cách để giải quyết vấn đề này từng là thông qua các biểu thức Tuy nhiên, có những trường hợp khác khi sử dụng khớp mẫu cấu trúc. Tôi đã đánh cắp ví dụ ngọt ngào này từ đây. Tuy nhiên, đó là một thứ khá tầm thường, có chức năng sẵn có trong gói import mathfor i in range(6): Điều này cũng nhanh hơn khoảng 12 lần so với mã ở trên, ít nhất là trên máy tính của tôi. (Mất 0. 13 giây, so với khoảng 1. 5 giây cho chức năng trên khi tôi cố gắng tính toán Mặt khác, việc xác định hàm giai thừa thông qua câu lệnh Vì vậy, khi bạn đang xác định các chức năng mà giải pháp sẵn có không tồn tại, bạn có thể sẽ không làm chậm mã của mình bằng cách sử dụng khớp mẫu cấu trúc Nói nhanh về Khớp mẫu tuyệt vờiCó một cách khác để bạn có thể khớp mẫu trong Python. Kể từ phiên bản 3. 7, gói Các tác giả khẳng định rằng vẫn còn một số chức năng trong Cá nhân tôi thích cú pháp khớp mẫu dựng sẵn hơn. Nhưng đối với những bạn thích sử dụng Những lời cuối cùng nổi tiếngKhớp mẫu vẫn còn khá mới trong Python, nhưng rất có thể nhiều nhà phát triển sẽ nhanh chóng áp dụng nó Điều này tất nhiên là dễ dàng để yêu cầu dựa trên thực tế rằng nó đã là một tính năng được yêu cầu nhiều từ cộng đồng. Nhưng có nhiều yêu sách hơn thế. Kết hợp mẫu cấu trúc có thể có đường cong học tập tương đối dốc so với các tính năng khác; . ) Khớp mẫu có nhanh hơn không?Hóa ra là khớp mẫu trong ví dụ của họ nhanh hơn đáng kể so với các thử nghiệm if-else . Mặc dù mã không sử dụng bất kỳ trường hợp khớp mẫu đặc biệt nào không thể thực hiện được với các phép thử if-else, nhưng nó chỉ so sánh các số nguyên.
Elif có nhanh hơn if không?Sự khác biệt giữa if và if elif else
. Khi một điều kiện trong câu lệnh if elif other là đúng, Python sẽ ngừng đánh giá các điều kiện khác. Do đó, if elif other nhanh hơn ba câu lệnh if .
Tôi có thể sử dụng cái gì thay vì khớp trong Python?Nếu bạn không thể sử dụng match-case , chúng tôi đã đề cập đến ba lựa chọn thay thế phổ biến. từ điển, thang if-elif hoặc lớp .
Liệu Python 3. 9 có khớp không?Kể từ đầu năm 2021, từ khóa đối sánh không tồn tại trong các phiên bản Python đã phát hành . Vì Python không có bất kỳ chức năng nào tương tự như switch/case trong các ngôn ngữ khác, nên bạn thường sử dụng các câu lệnh if/elif/else lồng nhau hoặc từ điển. |