Chuyển đến nội dung chính

Cách thoát Python: Hướng dẫn nhanh

Trong bài viết này, chúng tôi trình bày những điều cơ bản khi bạn kết thúc Python, cách thoát Python bằng các hàm thoát khác nhau và phím tắt, cũng như các vấn đề thường gặp và cách tránh.

Khám phá cùng AI

Thường thì khi làm xong với Python, tôi chỉ cần bấm nút đóng ở góc IDE để kết thúc chương trình và IDE sẽ xử lý việc kết thúc Python. Tuy nhiên, đôi khi tôi cần thoát Python theo cách lập trình hơn, chẳng hạn khi làm việc trực tiếp trong terminal hoặc khi muốn một chương trình tự động đóng Python sau khi chạy xong. Trong những trường hợp đó, các hàm thoát tích hợp sẵn của Python là lựa chọn phù hợp.

Câu trả lời ngắn: Đây là cách bạn có thể thoát một chương trình trong Python

Dùng exit() hoặc quit() để kết thúc các tiến trình Python trong mã mang tính thử nghiệm và dùng sys.exit() trong mã sản xuất. Chỉ dùng os._exit() trong những tình huống hiếm khi bạn không cần thực hiện các tác vụ dọn dẹp. Dưới đây là ví dụ về exit(), quit() và sys.exit() khi sử dụng:

Thoát Python với các hàm exit() hoặc quit()

print("Hello World! Let's exit the program")
exit() # Use the exit() function to terminate processes in casual code
print("Welcome back World!") # this code will not run after exiting
print("Hello World! Let's exit the program")
quit() # Use the quit() function to terminate processes in casual code
print("Welcome back World!") # this code will not run after quitting

Thoát Python với hàm sys.exit()

import sys # In some cases, you may need to import the sys module
print("Hello World! Let's exit the program")
sys.exit() # Use the sys.exit() function to terminate processes in production code
print("Welcome back World!") # this code will not run after exiting

Thoát Python bao gồm những gì?

Thoát Python là quá trình kết thúc trình thông dịch hoặc phiên Python, đồng nghĩa với việc dừng việc thực thi chương trình Python. Thông thường, trước khi kết thúc trình thông dịch và chính Python, sẽ có các tác vụ dọn dẹp được thực thi. Tùy cách bạn thoát Python, các quy trình dọn dẹp này sẽ diễn ra tự động ở phía sau. Bạn có thể tìm hiểu chi tiết cách hoạt động trong khóa học các nguyên tắc kỹ nghệ phần mềm này.

Bốn phương pháp để thoát mã Python

Có một số cách để thoát Python, ngoài cách do IDE cung cấp. Hãy cùng xem một vài cách dưới đây:

Sử dụng các hàm exit() hoặc quit()

Hàm exit() có thể được dùng để phát sinh ngoại lệ SystemExit, qua đó kết thúc trình thông dịch Python. Điều này chủ yếu hữu ích trong shell thông dịch tương tác. Hàm nhận một đối số mã thoát tùy chọn, thường dùng để biểu thị lý do thoát nhưng cũng có thể để trống.

exit()

hoặc

exit(0)  # Exit with a success status

Hàm quit() hoạt động tương tự như hàm exit().

quit()

Hai hàm này được thêm vào chủ yếu để giúp thoát khỏi terminal Python một cách dễ dàng. Nếu bạn không biết đóng thế nào, bạn sẽ bắt đầu gõ “exit” hoặc “quit” như những phỏng đoán hợp lý để thoát ra.

Cả hàm exit() và quit() đều phụ thuộc vào mô-đun site, vốn không phải lúc nào cũng có sẵn. Vì vậy, không nên dùng chúng trong mã sản xuất.

Dùng hàm sys.exit() cho mã sản xuất

Trong mã sản xuất, thông lệ là dùng hàm sys.exit() từ mô-đun sys để thoát Python mà không phụ thuộc vào mô-đun site. Mô-đun sys thường luôn có sẵn nhưng bạn sẽ cần import nó. Hàm này cũng nhận một đối số mã thoát tùy chọn.

Tương tự như exit() và quit(), sys.exit() phát sinh ngoại lệ SystemExit để kết thúc Python.

import sys # In some cases, you may need to import the sys module
sys.exit()

Thoát Python nhanh với os._exit()

Bên cạnh các hàm exit() và quit(), Python cung cấp hàm os._exit() để kết thúc nhanh với chức năng hạn chế. Khác với exit() và quit(), vốn phát sinh ngoại lệ SystemExit rồi thực hiện một vài tác vụ dọn dẹp, os._exit() kết thúc tiến trình Python ngay lập tức mà không gọi thêm các bước dọn dẹp. Để tìm hiểu thêm về các quy trình dọn dẹp, hãy đọc về ngoại lệ và xử lý lỗi trong Python, hoặc xem khóa Python for Developers trên Datacamp.

Hàm này hữu ích khi cần kết thúc tức thời, chẳng hạn khi trình thông dịch buộc phải tắt đột ngột. Nhưng hãy cẩn trọng; nó bỏ qua quá trình dọn dẹp thông thường của runtime Python, điều này có thể gây ra vấn đề về sau. Trong đại đa số trường hợp, dùng exit(), quit(), hoặc sys.exit() là lựa chọn tốt hơn.

Phím tắt để thoát Python

Trong trình thông dịch Python hoặc terminal, bạn có thể thoát Python bằng cách nhấn Ctrl + Z trên Windows hoặc Ctrl + D trên macOS. Các phím tắt này báo cho trình thông dịch rằng tệp đã hoàn tất và yêu cầu kết thúc Python. Tương tự os._exit(), phương pháp này không thực thi bất kỳ tác vụ dọn dẹp nào. Nếu muốn dùng cách này, bạn cần đảm bảo các tác vụ dọn dẹp phù hợp được xử lý tường minh trong mã của bạn.

Các vấn đề thường gặp

Điều quan trọng nhất cần cân nhắc khi thoát một chương trình là các tác vụ dọn dẹp. Không hoàn tất dọn dẹp có thể gây rò rỉ bộ nhớ, mất mát hoặc hỏng dữ liệu, và hàng loạt vấn đề khác. Nếu chương trình của bạn bắt đầu hoạt động bất thường, hãy kiểm tra để đảm bảo bạn đang thực hiện đúng các tác vụ dọn dẹp khi thoát.

Một vấn đề phổ biến khác khi thoát Python là vô tình kết thúc nhầm phiên hoặc trình thông dịch, đặc biệt trong môi trường có nhiều phiên hoạt động cùng lúc. Hãy cẩn trọng khi dùng phím tắt hoặc các hàm thoát để đảm bảo bạn thoát đúng phiên mong muốn.

Ngoài ra, đôi khi bạn có thể làm việc trên hệ thống không cài đặt mô-đun site, khiến exit() và quit() trở nên vô dụng. Nếu gặp trường hợp này, hãy dùng sys.exit(), vì mô-đun sys sẽ luôn được cài đặt.

Kết luận

Thoát Python bằng lập trình là một khía cạnh quan trọng của lập trình Python. Bằng cách hiểu các phương pháp khác nhau để thoát Python và các ứng dụng thực tiễn của chúng, bạn có thể quản lý hiệu quả việc thực thi và kết thúc mã Python.

Tìm hiểu thêm về cách sử dụng trình thông dịch Python trong hướng dẫn thiết lập Python này hoặc bài viết về script Python. Học cách dùng Python Shell trong khóa Introduction to Shell này hoặc khóa Data Processing in Shell. Nếu bạn quan tâm đến việc trở thành lập trình viên Python, hãy xem lộ trình nghề nghiệp Python Programmer của DataCamp.

Amberle McKee

Tác giả

Amberle McKee

Tôi là Tiến sĩ với 13 năm kinh nghiệm làm việc với dữ liệu trong môi trường nghiên cứu sinh học. Tôi phát triển phần mềm bằng nhiều ngôn ngữ lập trình, bao gồm Python, MATLAB và R. Tôi đam mê chia sẻ tình yêu học hỏi của mình với mọi người.

Chủ đề

Liên quan