Python Ví dụ về hàm & phương thức chính: Hiểu def Main()
Là gì Python Chức năng chính?
Python chức năng chính là điểm khởi đầ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ã theo trình tự. Hàm main chỉ được thực thi khi nó được chạy như một Python chương trình. Nó sẽ không chạy chức năng chính nếu được nhập dưới dạng mô-đun.
Hàm def main() trong Python? Để hiểu điều này, hãy xem xét mã ví dụ sau
def main() Ví dụ 1
def main(): print ("Hello World!") print ("Guru99")
Ở đây, chúng ta có hai phần in - một phần được xác định trong hàm chính là “Xin chào thế giới!” và cái 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ã “Xin chào thế giới!”
Đó là vì chúng ta đã không khai báo cuộc gọi chức năng “if__name__==”__main__”.
Điều quan trọng là sau khi định nghĩa hàm main, bạn gọi mã bằng if__name__== “__main__” rồi chạy mã, chỉ khi đó bạn mới nhận được đầu ra “hello world!” trong bảng điều khiển lập trình. Hãy xem xét mã sau
def main() Ví dụ 2
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,
- Thời Gian Python trình thông dịch đọc một tệp nguồn, nó sẽ thực thi tất cả mã được tìm thấy trong đó.
- Thời Gian Python chạy “tệp nguồn” làm chương trình chính, nó đặ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.
- In Python “if__name__== “__main__” cho phép bạn chạy Python các tập tin như 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à Python Mô-đun
Để hiểu tầm quan trọng của biến __name__ trong Python phương thức hàm chính, 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 MainFunction print("done")
Đây là giải thích mã:
Giống như C, Python sử dụng == để so sánh trong khi = để gán. Python trình thông dịch sử dụng chức năng chính theo hai cách
chạy trực tiếp:
- __tên__=__chính__
- 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
- câu lệnh if == false và tập lệnh 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.
Các ví dụ trên là Python 3 mã, nếu bạn muốn sử dụng Python 2, hãy xem xét đoạn mã sau
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In 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 đảm bảo rằng sau khi định nghĩa hàm main, bạn để lại một chút thụt lề và không khai báo mã ngay bên dưới hàm def main(): nếu không, sẽ xảy ra lỗi thụt lề.