Hướng dẫn python match case stack overflow - tràn ngăn xếp trường hợp trận đấu python
Python's 1 không chỉ là một câu lệnh chuyển đổi đơn giản. Nếu bạn sử dụng trần mà bạn coi là "tên biến", chúng thực sự sẽ được chụp các mẫu. Theo định nghĩa trong PEP số. 634 Show
Bên cạnh thực tế là bạn có thể không nên sử dụng 1 cho trường hợp sử dụng của mình, bạn phải sử dụng tên đủ điều kiện (chấm) theo một trong các cách sau:#1 Đối tượng phẳng
#2 Lập trình hướng đối tượng
#3 Truy cập địa phương đủ điều kiện đơn giản ()/Globals ()Tôi đã phát triển thư viện Match-Ref cho phép bạn truy cập bất kỳ biến cục bộ hoặc toàn cầu nào trong hoặc ngoài bất kỳ chức năng nào, chỉ cần sử dụng tiền tố 3.
Như bạn có thể thấy, 4 tự động giải quyết các biến từ các không gian tên địa phương và toàn cầu của bạn (theo thứ tự này). Không có thiết lập bổ sung cần thiết.Nếu bạn không muốn sử dụng thư viện của bên thứ 3, bạn có thể thấy phiên bản không có thư viện tương tự một chút bên dưới. #4 Truy cập địa phương ()/Globals () đủ điều kiện mà không có LIBS bên thứ 3 5 và 6 là các hàm tích hợp trong Python trả về 7 chứa tất cả các tên biến của bạn được ánh xạ tới các giá trị tương ứng của chúng. Bạn cần có khả năng truy cập các giá trị của Dict bằng cú pháp chấm, vì 1 cũng không hỗ trợ cú pháp truy cập từ điển. Do đó, bạn có thể viết lớp trợ giúp đơn giản này:
và sử dụng nó như vậy:
#5 Truy cập mô -đunCho rằng bạn dường như có ý định sử dụng lại mã trạng thái của mình (vì nếu không, bạn có thể sắp xếp chúng trong 9 s của bạn), bạn có thể xem xét sử dụng các mô-đun riêng cho việc này. 0
1
Một lần nữa, bạn có thể muốn xem xét lại nếu bạn muốn sử dụng 1. Python 3.10 đang thêm một tính năng mới có tên là khớp mẫu cấu trúc, được định nghĩa trong PEP 634 và có hướng dẫn về chủ đề trong PEP 636. Mẫu cấu trúc khớp với câu lệnh CASE / SWITE cho Python. Cú pháp mới vượt xa những gì một số ngôn ngữ sử dụng cho các câu lệnh trường hợp của họ. is adding a new feature called Structural Pattern Matching, which is defined in PEP 634 and has a tutorial on the topic in PEP 636. Structural Pattern Matching brings the case / switch statement to Python. The new syntax goes beyond what some languages use for their case statements. Mục đích của hướng dẫn này là giúp bạn làm quen với cú pháp mới mà bạn có thể sử dụng trong Python 3.10. Nhưng trước khi bạn đi sâu vào hóa thân mới nhất của Python, hãy xem lại những gì bạn có thể sử dụng trước khi 3.10 xuất hiện Python trước 3.10Python luôn có một số giải pháp mà bạn có thể sử dụng thay vì câu lệnh trường hợp hoặc chuyển đổi. Một ví dụ phổ biến là sử dụng Python's ____ 23 -________ 24 -________ 25As được đề cập trong câu trả lời Stackoverflow này. Trong câu trả lời đó, nó hiển thị ví dụ sau: if x == 'a': # Do the thing elif x == 'b': # Do the other thing if x in 'bc': # Fall-through by not using elif, but now the default case includes case 'a'! elif x in 'xyz': # Do yet another thing else: # Do the default Đây là một thay thế khá hợp lý để sử dụng một câu lệnh trường hợp. Một giải pháp phổ biến khác mà bạn sẽ tìm thấy trên StackOverflow và các trang web khác là sử dụng từ điển của Python để làm điều gì đó như thế này: choices = {'a': 1, 'b': 2} result = choices.get(key, 'default') Có những giải pháp khác sử dụng lambdas bên trong từ điển hoặc các chức năng bên trong từ điển. Đây cũng là những giải pháp hợp lệ. Sử dụng ________ 23 -____ ____ 24 -____ 25 có thể là phổ biến nhất và thường là giải pháp dễ đọc nhất trước khi phát hành Python 3.10. Bắt đầu với kết hợp mô hình cấu trúc phù hợpPhù hợp với mô hình cấu trúc mới của Python sử dụng hai từ khóa mới:
Để xem cách sử dụng mã này, hãy xem ví dụ sau dựa trên hướng dẫn của Guido: >>> status_code = 400 >>> match status_code: ... case 400: ... print("bad request") ... case 200: ... print("good") ... case _: print("Something else bad happened") bad request Mã này lấy status_code và bảo Python khớp với nó với một trong các trường hợp. Nếu trường hợp là _ (nhấn mạnh), thì trường hợp này không được tìm thấy và đó là trường hợp mặc định. Đó là tuyên bố trường hợp cuối cùng đôi khi được gọi là trường hợp "rơi xuống". Kết hợp các chữBạn có thể đơn giản hóa các tuyên bố trường hợp của bạn một chút bằng cách kết hợp các chữ cái mà bạn đang so sánh với. Ví dụ: bạn có thể muốn kiểm tra xem mẫu, status_code, phù hợp với nhiều chữ. Để làm điều đó, bạn sẽ sửa đổi mã của mình như thế này: 9Đây là một ví dụ đầy đủ: 0Đó không phải là tuyệt vời? Gói lênKết hợp mô hình cấu trúc là một tính năng mới thú vị chỉ có sẵn trong Python 3.10 và mới hơn. Đó là một tính năng mới mạnh mẽ có nhiều cách sử dụng thú vị. Những trường hợp sử dụng đó có thể được giải quyết bằng các tính năng hiện có của Python không? Có lẽ, nhưng điều này làm cho nó thậm chí còn dễ dàng hơn! Những bài viết liên quan
Python có trường hợp phù hợp không?Python 3.10 đã được phát hành vào giữa năm 2021 và đi kèm với kết hợp mô hình cấu trúc, còn được gọi là một tuyên bố trường hợp phù hợp.Đây là tính năng mới quan trọng nhất của Python 3.10;Chức năng mới cho phép bạn dễ dàng kiểm soát luồng chương trình của mình bằng cách thực hiện một số phần của mã nếu điều kiện (hoặc trường hợp) được đáp ứng.. This is Python 3.10's most important new feature; the new functionality allows you to more easily control the flow of your programs by executing certain parts of code if conditions (or cases) are met.
Có phải trường hợp trận đấu Python 3.8 không?Trường hợp trận đấu Python tương tự như câu lệnh Case Switch, được công nhận là khớp mẫu cấu trúc trong Python.Lưu ý: Cấu trúc trường hợp khớp có sẵn cho Python phiên bản 3.10 trở đi.The match case structure is available for python version 3.10 and onwards.
Python 3. 10 có câu lệnh chuyển đổi không?Từ phiên bản 3.10 trở lên, Python đã triển khai một tính năng trường hợp chuyển đổi có tên là Mẫu cấu trúc phù hợp với mô hình cấu trúc.Bạn có thể triển khai tính năng này với các từ khóa phù hợp và trường hợp.Python has implemented a switch case feature called “structural pattern matching”. You can implement this feature with the match and case keywords. |