Chức năng chính của Python là gì?
Hàm chính trong Python là điểm bắt đầu của bất kỳ chương trình nào. Khi chương trình được chạy, trình thông dịch python chạy mã tuần tự. Hàm chính chỉ được thực thi khi nó được chạy dưới dạng chương trình Python. Nó sẽ không chạy chức năng chính nếu nó được nhập dưới dạng mô-đun.
Hàm def main () trong Python là gì? Để hiểu điều này, hãy xem xét mã ví dụ sau
def main():print ("hello world!")print ("Guru99")
Ở đây, chúng ta có hai phần của bản in - một phần được định nghĩa trong hàm chính là "Hello World" và phần còn lại là độc lập, đó là "Guru99". Khi bạn chạy hàm def main ():
- Chỉ "Guru99" in ra
- chứ không phải mã "Hello World".
Đó là vì chúng ta đã không khai báo hàm gọi "if__name __ ==" __main__ ".
Điều quan trọng là sau khi xác định chức năng chính, bạn gọi mã bằng if__name __ == "__main__" và sau đó chạy mã, chỉ sau đó bạn sẽ nhận được đầu ra "hello world!" trong bảng điều khiển lập trình. Hãy xem xét đoạn mã sau
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Guru99 được in trong trường hợp này.
Đây là lời giải thích,
- Khi trình thông dịch Python đọc một tệp nguồn, nó sẽ thực thi tất cả mã được tìm thấy trong đó.
- Khi Python chạy "tệp nguồn" làm chương trình chính, nó sẽ đặt biến đặc biệt (__name__) có giá trị ("__main__").
- Khi bạn thực thi hàm main trong python, nó sẽ đọc câu lệnh "if" và kiểm tra xem __name__ có bằng __main__ hay không.
- Trong Python, "if__name __ ==" __main__ " cho phép bạn chạy các tệp Python dưới dạng các mô-đun có thể tái sử dụng hoặc các chương trình độc lập.
Biến __name__ và Mô-đun Python
Để hiểu tầm quan trọng của biến __name__ trong phương thức hàm chính của Python, hãy xem xét đoạn mã sau:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Bây giờ hãy xem xét, mã được nhập dưới dạng mô-đun
import MainFunctionprint("done")
Đây là phần giải thích mã:
Giống như C, Python sử dụng == để so sánh trong khi = để gán. Trình thông dịch Python sử dụng hàm chính theo hai cách
chạy trực tiếp:
- __name __ = __ main__
- câu lệnh if == True và tập lệnh trong _main_ sẽ được thực thi
nhập dưới dạng mô-đun
- __name __ = tên tệp của mô-đun
- if statement == false và script trong __main__ sẽ không được thực thi
Khi mã được thực thi, nó sẽ kiểm tra tên mô-đun bằng "if." Cơ chế này đảm bảo, chức năng chính chỉ được thực thi dưới dạng chạy trực tiếp chứ không phải khi được nhập dưới dạng mô-đun.
Ví dụ trên là mã Python 3, nếu bạn muốn sử dụng Python 2, vui lòng xem xét mã sau
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
Trong Python 3, bạn không cần sử dụng if__name. Mã sau cũng hoạt động
def main():print("Hello World!")main()print("Guru99")
Lưu ý: Hãy chắc chắn rằng sau khi xác định hàm main, bạn để lại một số thụt lề và không khai báo đoạn mã ngay bên dưới hàm def main (): nếu không sẽ báo lỗi thụt lề.