Hàm chính của Python

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng thuộc tính __name__ của chương trình Python để chạy nó động trong các ngữ cảnh khác nhau.

Hàm main () trong Python là gì?

Một số ngôn ngữ lập trình có một chức năng đặc biệt được gọi main()là điểm thực thi cho một tệp chương trình. Tuy nhiên, trình thông dịch Python chạy từng dòng nối tiếp từ đầu tệp và không có main()chức năng rõ ràng .

Python cung cấp các quy ước khác để xác định điểm thực thi. Một trong số họ đang sử dụng main()hàm và thuộc tính __name__ của tệp python.

__Name__ trong Python là gì?

Biến __name__ là một biến Python nội trang đặc biệt hiển thị tên của mô-đun hiện tại.

Nó có các giá trị khác nhau tùy thuộc vào nơi chúng tôi thực thi tệp Python. Hãy xem một ví dụ.

Chạy tệp Python dưới dạng tập lệnh

Giả sử chúng ta có một tệp Python có tên là helloworld.py với nội dung sau:

 print(__name__) 

Nếu chúng ta chạy helloworld.py từ dòng lệnh, thì nó sẽ chạy dưới dạng tập lệnh Python. Chúng ta có thể chạy chương trình Python bằng lệnh sau:

$ python helloworld.py

Khi chúng ta chạy chương trình dưới dạng script, giá trị của biến __name__ được đặt thành __main__. Vì vậy, đầu ra của chương trình sau sẽ là:

 __chủ yếu__ 

Chạy tệp Python dưới dạng Mô-đun

Chúng tôi cũng có thể chạy tệp Python dưới dạng mô-đun. Đối với điều này, chúng tôi phải nhập tệp này vào một chương trình Python khác. Hãy xem một ví dụ.

Giả sử chúng ta có một tệp Python tên là main.py trong cùng thư mục với tệp heloworld.py. Nó có nội dung sau:

 import helloworld 

Khi chúng tôi chạy tệp này, chúng tôi sẽ có kết quả sau:

 Chào thế giới 

Ở đây, chúng ta có thể thấy rằng việc nhập một mô-đun cũng chạy tất cả mã trong tệp mô-đun.

Tuy nhiên, chúng ta có thể thấy rằng thay vì hiển thị __main__, chương trình hiển thị tên của mô-đun tức là helloworld.

Đó là bởi vì, trong bối cảnh chạy tệp Python dưới dạng mô-đun, tên của chính mô-đun được gán cho biến __name__.

Sử dụng if có điều kiện với __name__

Bây giờ chúng ta đã hiểu cách biến __name__ được gán giá trị, chúng ta có thể sử dụng ifmệnh đề điều kiện để chạy cùng một tệp Python khác nhau trong các ngữ cảnh khác nhau.

Hãy xem một ví dụ.

Giả sử chúng ta thay đổi nội dung của tệp helloworld.py thành như sau:

 def main(): print("Hello World") if __name__=="__main__": main() 

Bây giờ, khi chúng ta chạy nó dưới dạng tập lệnh thông qua dòng lệnh, đầu ra sẽ là:

 Chào thế giới 

Tuy nhiên, khi chúng tôi chạy nó dưới dạng một mô-đun bằng cách nhập nó vào tệp main.py , không có đầu ra nào được hiển thị vì main()hàm không được gọi.

Ở đây, chúng tôi đã tạo một main()hàm tùy chỉnh trong tệp helloworld.py . Nó chỉ được thực thi khi chương trình được chạy như một tập lệnh độc lập chứ không phải là một mô-đun được nhập.

Đây là cách tiêu chuẩn để xác định rõ ràng main()hàm trong Python. Đây là một trong những trường hợp sử dụng biến __name__ phổ biến nhất của tệp Python.

thú vị bài viết...