Hướng dẫn how do you create a dynamic menu in python? - làm thế nào để bạn tạo một menu động trong python?
Trong bài đăng này, tôi sẽ chỉ cho bạn cách triển khai menu dòng lệnh động trong Python. Trong hầu hết các hướng dẫn và bài đăng mà tôi đã thấy trực tuyến cách thông thường để thực hiện menu dòng lệnh là một vòng lặp trong thời gian với một loạt các câu lệnh if-elif. Việc triển khai này là ổn đối với menu nhỏ, nhưng nó có thể nhanh chóng trở nên rất tẻ nhạt nếu bạn cần sửa đổi menu của mình sau đó. Trong triển khai này, không thể tạo các mục menu động, có nghĩa là chúng ta cần mã cứng cấu trúc menu trong một hàm riêng. Đầu tiên tôi sẽ cho bạn thấy việc triển khai thông thường để các lợi thế của bộ điều khiển động trở nên rõ ràng hơn. Vì lợi ích của ví dụ này, tôi đã giành được lo lắng về việc xử lý lỗi hoặc những thứ khác để giữ cho mã này ngắn gọn nhất có thể. Sau ví dụ đầu tiên, tôi cũng sẽ chỉ ra cách tốt hơn để thực hiện menu một cách linh hoạt. If/Elif MenuĐiều đầu tiên chúng ta cần là một chức năng in ra menu, để người dùng biết các lệnh nào có sẵn.
Tôi thích loại cú pháp đa dòng này, bởi vì nó cho phép bạn viết các hàng sạch và căn chỉnh và nó chắc chắn đẹp hơn phiên bản sau:
Phiên bản ưa thích của tôi cần gõ nhiều hơn, nhưng ít nhất là theo cách đó, bạn không có một số hàng chuỗi không phân bổ kỳ lạ ở bên trái. Sau đó, chúng tôi tạo chức năng menu thực tế.
Trước tiên, chúng tôi gọi hàm 0 được tạo trước đó và tạo biến 1 để lưu trữ các đầu vào được gõ bởi người dùng. Sau đó, chúng tôi nhập vòng lặp 2 và chúng tôi chạy lặp lại vòng lặp lại cho đến khi người dùng nhập số 6, thoát khỏi chương trình.Bây giờ chúng tôi có chức năng 0 của chúng tôi và chức năng cơ bản tại chỗ. Bước tiếp theo là chạy chương trình.
Chúng ta có thể bắt đầu phát triển các progam hơn nữa bằng cách xây dựng các tuyên bố 4. Chúng tôi có thể tạo các chức năng hoặc mô -đun bổ sung sẽ được gọi sau một máy ép khóa cụ thể. Chúng tôi có thể thêm nhiều câu lệnh 5 để chạy nhiều chức năng hơn. Tất nhiên, mỗi khi chúng tôi thêm một tuyên bố 5 mới, chúng tôi cũng cần sửa đổi chức năng ____10 của chúng tôi. Đây là nơi bộ điều khiển menu động bắt đầu có ý nghĩa. Hãy xem tiếp theo làm thế nào nó có thể được thực hiện.Menu bộ điều khiển độngChúng tôi bắt đầu bằng cách tạo một 8 mới cho bộ điều khiển với một số phương thức trong đó. Hãy để nhóm gọi lớp 9 và các phương thức 0.
Đây là cấu trúc cơ bản của lớp. Chúng tôi mô phỏng các câu lệnh 1 của ví dụ trước với các phương thức riêng biệt được gọi là phương thức 0. Các phương pháp DO trong ví dụ này phải được đặt tên với tiền tố DO. Bạn sẽ hiểu tại sao sau này. Vì vậy, đây là những phương pháp mà người dùng sẽ có thể chạy từ dòng lệnh. Trong ví dụ này, chúng tôi không cần tạo một thể hiện của lớp 9 và đó là lý do tại sao tôi sử dụng các phương thức tĩnh ở đây.do prefix. You will understand why later. So these are the methods that the user will be able to run from the command line. In this example we do not need to create an instance of the 9 class and that is
why I use static methods here.Nhưng làm thế nào chúng ta có thể chạy tất cả các phương pháp này? Làm thế nào để chúng tôi liên kết đầu vào người dùng với một phương pháp DO cụ thể? Câu trả lời khá đơn giản một khi bạn đã học nó một lần. Chúng tôi sẽ cần một phương thức trợ giúp riêng biệt lấy đầu vào của người dùng làm đối số.
Trong đoạn trích, bạn có thể thấy phương pháp trợ giúp. Tôi vẫn cần chỉ cho bạn nơi gọi phương thức này từ đâu, nhưng trước tiên hãy để đi qua phương thức ____24. Đầu tiên chúng tôi tạo một chuỗi và lưu trữ nó đến 5. Chuỗi được lưu trữ sẽ được định dạng như 6. Lý tưởng nhất là đầu vào của người dùng là một số mà correnponds cho một trong các phương pháp DO của chúng tôi. Nếu nó không có, một 7 sẽ được nâng lên.Sau đó, chúng tôi tạo một biến mới, 8. Chúng tôi sử dụng hàm 9 để tìm phương pháp DO được yêu cầu từ trong lớp 9. Đối số đầu tiên của hàm 9 là lớp và mục thứ hai là tên phương thức được tìm kiếm ở định dạng chuỗi.Nếu không có lỗi nào được nêu ra, chúng tôi sẽ chạy phương thức 8 được tạo bởi hàm 9. Bây giờ chúng ta cần một cái gì đó để buộc tất cả những điều này lại với nhau. Trong ví dụ 1, chúng tôi đã sử dụng vòng lặp 2 và vì vậy chúng tôi cũng làm trong cái này. Hãy để tạo ra phương thức 6.
Hoàn hảo. Bây giờ chúng tôi đã có cho mình một chương trình làm việc. Mặc dù người dùng chèn một cái gì đó không phải là 6, trong khi vòng lặp sẽ tiếp tục gọi phương thức 4 với đầu vào người dùng mong muốn. Nếu người dùng cho 6 làm đầu vào. Chương trình dừng lại và in ra chương trình đã dừng lại. thông báo.Lưu ý rằng trong ví dụ này, chúng tôi cho rằng phương thức thoát là phương thức 8. Có thể cần phải viết một số mã để tìm phương pháp Do cuối cùng từ lớp và sử dụng nó làm phương thức thoát, để bạn có thể thêm nhiều phương pháp DO mà không phải sửa đổi phương thức 6.Nhưng không có menu. Chúng tôi sẽ cần một phương thức 0. Nhưng trước khi viết phương pháp 0. Thêm một tài liệu cho tất cả các phương pháp làm của bạn. DocString sẽ được sử dụng để tạo menu một cách linh hoạt.Sửa đổi phương pháp làm của bạn khi bạn muốn. Tôi để lại một ví dụ một phương thức ở đây chỉ để làm rõ.
Sau đó tạo phương thức 0.
Vì vậy, những gì đang xảy ra ở đó. Sau dòng đầu tiên của các dấu hiệu bằng, chúng tôi tạo một danh sách tất cả các phương thức ( 3) bắt đầu bằng 4. Đây là những phương pháp DO nổi tiếng sẽ được sử dụng làm mục menu của chúng tôi.Sau đó, chúng tôi tạo một chuỗi duy nhất chứa toàn bộ menu bằng cách sử dụng phương thức hiểu danh sách và phương thức 5. Phần này hơi khó đọc vì vậy tôi sẽ trải qua danh sách hiểu để làm cho nó rõ ràng hơn.
Các bước này được lặp lại cho tất cả các phương thức trong danh sách 3. Kết quả là chúng tôi nhận được một chuỗi mà trong trường hợp này sẽ là 1. Menu đầu tiên Mục. Bạn có thể nhận thấy rằng thực hiện như thế này, menu chỉ hoạt động khi có ít hơn 10 phương pháp thực hiện, vì 6 chỉ là ký tự cuối cùng của tên phương thức. Điều này có thể dễ dàng sửa chữa, ví dụ, bằng cách sử dụng một biểu thức chính quy đơn giản. Hoặc có thể trong một số trường hợp bạn có thể lấy mọi thứ đến sau khi gạch dưới.Hãy đến điểm này, chúng tôi đã sẵn sàng để chạy bộ điều khiển làm việc của chúng tôi.
Sự kết luậnTôi đã chỉ cho bạn hai cách để tạo cấu trúc menu cho một ứng dụng dòng lệnh. Cách đầu tiên là cách đơn giản bằng cách sử dụng các câu lệnh 1. Cấu trúc menu này là tốt cho các menu nhỏ sẽ không được sửa đổi sau đó. Nó thực sự dễ hiểu ngay cả đối với một lập trình viên mới bắt đầu. Nhược điểm của nó là nếu một số sửa đổi là cần thiết, quá trình sửa đổi có thể trở nên tẻ nhạt và dễ bị lỗi.Cách thứ hai là một bộ điều khiển động. Đây là cách mà tôi đề xuất cho các menu lớn hơn. Nó khó hiểu hơn một chút, nhưng điều quan trọng là phải nắm bắt tốt nó nếu bạn đang lên kế hoạch thiết kế các ứng dụng lớn hơn. Ưu điểm là bằng cách thêm nhiều phương pháp làm, menu cập nhật linh hoạt mà không phải sửa đổi thủ công. Điều này có nghĩa là menu luôn được cập nhật và các phương thức có thể truy cập được. Với menu động, bạn có thể dễ dàng sử dụng ID phương thức khác so với số. Không có gì ngăn cản bạn sử dụng một cái gì đó như dojump_ hoặc doshoot_ làm tên phương thức của bạn. Bạn chỉ cần điều chỉnh 0 với tên phương thức của bạn.Đó là tất cả cho bây giờ. :) |