__ tệp __ làm gì trong python?

Khi trình thông dịch Python đọc tệp Python, trước tiên, nó sẽ đặt một số biến đặc biệt. Sau đó, nó thực thi mã từ tệp

Một trong những biến đó được gọi là

File one __name__ is set to: __main__
9

Nếu bạn làm theo từng bước bài viết này và đọc các đoạn mã của nó, bạn sẽ học cách sử dụng

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
0 và tại sao nó lại quan trọng như vậy

Giải thích các mô-đun Python

Các tệp Python được gọi là các mô-đun và chúng được xác định bởi phần mở rộng tệp

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
1. Một mô-đun có thể định nghĩa các hàm, lớp và biến

Vì vậy, khi trình thông dịch chạy một mô-đun, biến

File one __name__ is set to: __main__
9 sẽ được đặt là  
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3 nếu mô-đun đang chạy là chương trình chính

Nhưng nếu mã đang nhập mô-đun từ một mô-đun khác, thì biến

File one __name__ is set to: __main__
9  sẽ được đặt thành tên của mô-đun đó

Hãy xem một ví dụ. Tạo một mô-đun Python có tên

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
5 và dán mã cấp cao nhất này vào bên trong

# Python file one module

print["File one __name__ is set to: {}" .format[__name__]]
tệp_một. py

Bằng cách chạy tệp này, bạn sẽ thấy chính xác những gì chúng ta đang nói đến. Biến

File one __name__ is set to: __main__
9 cho mô-đun này được đặt thành
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3

File one __name__ is set to: __main__

Bây giờ, thêm một tệp khác có tên

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
8 và dán mã này vào bên trong

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
tệp_hai. py

Ngoài ra, hãy sửa đổi mã trong

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
5 như thế này để chúng tôi nhập mô-đun
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
4file_one. py

Chạy mã

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41 của chúng tôi một lần nữa sẽ cho thấy rằng biến
File one __name__ is set to: __main__
9 trong
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41 không thay đổi và vẫn được đặt thành
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3. Nhưng bây giờ, biến
File one __name__ is set to: __main__
9 trong
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40 được đặt làm tên mô-đun của nó, do đó,
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40

Kết quả sẽ giống như thế này

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3

Nhưng hãy chạy trực tiếp

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40 và bạn sẽ thấy rằng tên của nó được đặt thành
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
6

Biến

File one __name__ is set to: __main__
9 cho tệp/mô-đun đang chạy sẽ luôn là
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3. Nhưng biến
File one __name__ is set to: __main__
9 cho tất cả các mô-đun khác đang được nhập sẽ được đặt thành tên mô-đun của chúng

Quy ước đặt tên tệp Python

Cách sử dụng thông thường của

File one __name__ is set to: __main__
9 và
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3 trông như thế này

File one __name__ is set to: __main__
2

Hãy xem cách điều này hoạt động trong cuộc sống thực và cách thực sự sử dụng các biến này

Sửa đổi

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41 và
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40 để trông như thế này

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41

File one __name__ is set to: __main__
6tệp_một. py

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40

File one __name__ is set to: __main__
8tệp_hai. py

Một lần nữa, khi chạy

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41, bạn sẽ thấy rằng chương trình đã nhận ra mô-đun nào trong số hai mô-đun này là
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3 và thực thi mã theo câu lệnh
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
61 đầu tiên của chúng tôi

Kết quả sẽ giống như thế này

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
2

Bây giờ hãy chạy

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40 và bạn sẽ thấy rằng biến
File one __name__ is set to: __main__
9 được đặt thành
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3

File one __name__ is set to: __main__
0

Khi các mô-đun như thế này được nhập và chạy, các chức năng của chúng sẽ được nhập và mã cấp cao nhất được thực thi

Để xem quy trình này đang hoạt động, hãy sửa đổi các tệp của bạn thành như thế này

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41

File one __name__ is set to: __main__
1file_one. py

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40

File one __name__ is set to: __main__
2

Bây giờ các chức năng được tải nhưng không chạy

Để chạy một trong các chức năng này, hãy sửa đổi phần

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
0 của
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41 thành như thế này

File one __name__ is set to: __main__
3

Khi chạy

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41 bạn sẽ thấy như thế này

File one __name__ is set to: __main__
4

Ngoài ra, bạn có thể chạy các chức năng từ các tệp đã nhập. Để làm điều đó, hãy sửa đổi phần

File one __name__ is set to: __main__
20 của
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41 thành như thế này

File one __name__ is set to: __main__
5

Và bạn có thể mong đợi một kết quả như thế này

File one __name__ is set to: __main__
6

Bây giờ, giả sử mô-đun

# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40 thực sự lớn với nhiều chức năng [trong trường hợp của chúng tôi là hai] và bạn không muốn nhập tất cả chúng. Sửa đổi
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
40 để trông như thế này

File one __name__ is set to: __main__
7tệp_hai. py

Và để nhập các chức năng cụ thể từ mô-đun, hãy sử dụng khối nhập khẩu

File one __name__ is set to: __main__
24 trong tệp
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
41

File one __name__ is set to: __main__
8file_one. py

Phần kết luận

Có một trường hợp sử dụng thực sự hay cho biến

File one __name__ is set to: __main__
9, cho dù bạn muốn một tệp có thể được chạy dưới dạng chương trình chính hay được nhập bởi các mô-đun khác. Chúng ta có thể sử dụng một khối
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
0 để cho phép hoặc ngăn các phần mã chạy khi các mô-đun được nhập

Khi trình thông dịch Python đọc một tệp, biến

File one __name__ is set to: __main__
9 được đặt thành
# Python module to import

print["File two __name__ is set to: {}" .format[__name__]]
3 nếu mô-đun đang chạy hoặc là tên của mô-đun nếu nó được nhập. Đọc tệp sẽ thực thi tất cả mã cấp cao nhất, nhưng không phải các hàm và lớp [vì chúng sẽ chỉ được nhập]

áo ngực. [Điều đó có nghĩa là "Làm tốt lắm" trong tiếng Thụy Điển. ]

Xem thêm các bài viết như thế này trên hồ sơ freeCodeCamp, hồ sơ Trung bình của tôi và những nội dung thú vị khác mà tôi xây dựng trên trang GitHub của mình

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Goran Aviani

Kỹ sư phần mềm có kinh nghiệm phát triển, thử nghiệm và bảo trì các giải pháp phần mềm. Làm việc trong công ty toàn cầu nhanh nhẹn, kinh doanh, nhịp độ cao

Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

__ name __ == '__ main __' nghĩa là gì trong Python?

Tóm lại. Nó cho phép bạn thực thi mã khi tệp chạy dưới dạng tập lệnh , nhưng không phải khi nó được nhập dưới dạng mô-đun. Đối với hầu hết các mục đích thực tế, bạn có thể coi khối điều kiện mà bạn mở bằng if __name__ == "__main__" như một cách để lưu trữ mã chỉ chạy khi tệp của bạn được thực thi dưới dạng tập lệnh.

Điểm của __ tên __ là gì?

__name__ == "__main__" chỉ chạy các khối mã khi tập lệnh Python của chúng tôi đang được thực thi trực tiếp từ người dùng . Điều này rất hữu ích vì nó cho phép mã của chúng ta có hành vi khác khi nó được thực thi dưới dạng chương trình thay vì được nhập dưới dạng mô-đun.

__ đường dẫn __ trong Python là gì?

Các gói hỗ trợ thêm một thuộc tính đặc biệt, __path__. Cái này được khởi tạo thành danh sách chứa tên của thư mục chứa __init__ của gói. py trước khi mã trong tệp đó được thực thi . Biến này có thể được sửa đổi; .

Việc sử dụng __ chính __ trong Python là gì?

__main__ là tên của môi trường chạy mã cấp cao nhất . “Mã cấp cao nhất” là mô-đun Python do người dùng chỉ định đầu tiên bắt đầu chạy. Đó là "cấp cao nhất" vì nó nhập tất cả các mô-đun khác mà chương trình cần. Đôi khi “mã cấp cao nhất” được gọi là điểm vào ứng dụng.

Chủ Đề