Bạn rất có thể đã thấy biến Trong bài viết này, tôi muốn chỉ cho bạn cách bạn có thể sử dụng biến này để tạo các mô -đun trong Python. Biến Đôi khi bạn viết một tập lệnh với các chức năng cũng có thể hữu ích trong các tập lệnh khác. Trong Python, bạn có thể nhập tập lệnh đó dưới dạng mô -đun trong một tập lệnh khác. Nhờ biến đặc biệt này, bạn có thể quyết định xem bạn có muốn chạy tập lệnh hay không. Hoặc bạn muốn nhập các chức năng được xác định trong tập lệnh. Khi bạn chạy tập lệnh của mình, biến Giới thiệu về biến _ _name_ _ và cách sử dụng của nó trong Python
__name__
khi bạn đã trải qua mã Python. Dưới đây bạn thấy một đoạn mã ví dụ về cách nó có thể trông:if __name__ == '__main__': main[]
Tại sao biến _ _name_ _ được sử dụng?
__name__
[hai dấu gạch dưới và sau] là một biến Python đặc biệt. Nó nhận được giá trị của nó tùy thuộc vào cách chúng tôi thực thi tập lệnh chứa.Những giá trị nào có thể chứa biến __name__?
__name__
bằng
0. Khi bạn nhập tập lệnh chứa, nó sẽ chứa tên của tập lệnh.def myFunction[]: print 'The value of __name__ is ' + __name__
Chúng ta hãy xem hai trường hợp sử dụng này và mô tả quá trình với hai hình minh họa.
Kịch bản 1 - Chạy tập lệnh
Giả sử chúng tôi đã viết kịch bản như sau:
def myFunction[]: print 'The value of __name__ is ' + __name__
1 as follows:def myFunction[]: print 'The value of __name__ is ' + __name__
def main[]: myFunction[]
if __name__ == '__main__': main[]
Nếu bạn chạy NordScript.py, quá trình dưới đây được tuân thủ.
Trước khi tất cả các mã khác được chạy, biến __name__
được đặt thành __main__. Sau đó, các câu lệnh DEF
def myFunction[]: print 'The value of __name__ is ' + __name__
3and def myFunction[]: print 'The value of __name__ is ' + __name__
4 được chạy. Bởi vì điều kiện đánh giá là đúng, chức năng chính được gọi. Điều này, lần lượt, gọi MyFunction. Điều này in ra giá trị của def myFunction[]: print 'The value of __name__ is ' + __name__
0.and def myFunction[]: print 'The value of __name__ is ' + __name__
4 def statements are run. Because the condition evaluates to true, the main function is called.
This, in turn, calls myFunction. This prints out the value of def myFunction[]: print 'The value of __name__ is ' + __name__
0.Kịch bản 2 - Nhập tập lệnh vào tập lệnh khác
Nếu chúng ta muốn sử dụng lại chức năng trong một tập lệnh khác, ví dụ
def myFunction[]: print 'The value of __name__ is ' + __name__
6, chúng ta có thể nhập def myFunction[]: print 'The value of __name__ is ' + __name__
1 dưới dạng mô-đun.Mã trong
def myFunction[]: print 'The value of __name__ is ' + __name__
6 có thể như sau:import nameScript as ns
ns.myFunction[]
Sau đó chúng tôi có hai phạm vi: một trong số
def myFunction[]: print 'The value of __name__ is ' + __name__
9 và phạm vi thứ hai của def main[]: myFunction[]
0. Trong hình minh họa, bạn sẽ thấy nó khác với trường hợp sử dụng đầu tiên như thế nào.Trong IntremScript.py, biến __name__
được đặt thành __main__. Bằng cách nhập NordScript, Python bắt đầu tìm kiếm một tệp bằng cách thêm
def main[]: myFunction[]
2 vào tên mô -đun. Sau đó, nó chạy mã chứa trong tệp đã nhập.Nhưng lần này ITI được đặt thành Namecript. Một lần nữa, các câu lệnh def cho chính và myFunction được chạy. Nhưng, bây giờ điều kiện đánh giá là sai và chính không được gọi.is set to nameScript. Again the def statements for main and myFunction are run. But, now the condition evaluates to false and main is not called.
Trong Indurtingscript.py, chúng tôi gọi MyFunction xuất bản NameScript. Nordscript được biết đến với chức năng khi hàm đó được xác định.
Nếu bạn sẽ in __name__
trong Indurmingscript, điều này sẽ xuất ra ____10. Lý do cho điều này là Python sử dụng giá trị được biết đến trong phạm vi của InformingScript.
Sự kết luận
Trong bài viết ngắn này, tôi đã giải thích cách bạn có thể sử dụng biến __name__
để viết các mô -đun. Bạn cũng có thể tự mình chạy các mô -đun này. Điều này có thể được thực hiện bằng cách sử dụng cách các giá trị của các biến này thay đổi tùy thuộc vào nơi chúng xảy ra.
Học mã miễn phí. Chương trình giảng dạy 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
Mục đích của __ tất cả __ là gì?
Nói tóm lại, __all__ ở cấp độ gói thực hiện tương tự như đối với các mô -đun, ngoại trừ nó liên quan đến các mô -đun trong gói [trái ngược với việc chỉ định tên trong mô -đun]. Vì vậy, __all__ chỉ định tất cả các mô -đun sẽ được tải và nhập vào không gian tên hiện tại khi chúng tôi sử dụng từ nhập gói *.
Mục đích của __ tất cả __ là gì?
Nói tóm lại, __all__ ở cấp độ gói thực hiện tương tự như đối với các mô -đun, ngoại trừ nó liên quan đến các mô -đun trong gói [trái ngược với việc chỉ định tên trong mô -đun]. Vì vậy, __all__ chỉ định tất cả các mô -đun sẽ được tải và nhập vào không gian tên hiện tại khi chúng tôi sử dụng từ nhập gói *.
_ Và __ có nghĩa là gì trong Python?
__name__ is a built-in variable which evaluates to the name of the current module. Thus it can be used to check whether the current script is being run on its own or being imported somewhere else by
combining it with if statement, as shown below.
Xem xét hai tệp riêng biệt File1 và File2.
def main[]: myFunction[]
6 def main[]: myFunction[]
7def main[]: myFunction[]
8 def main[]: myFunction[]
9if __name__ == '__main__': main[]
0if __name__ == '__main__': main[]
1 if __name__ == '__main__': main[]
2if __name__ == '__main__': main[]
3if __name__ == '__main__': main[]
3 if __name__ == '__main__': main[]
5if __name__ == '__main__': main[]
6if __name__ == '__main__': main[]
7def main[]: myFunction[]
6 def main[]: myFunction[]
7import nameScript as ns
0import nameScript as ns
1import nameScript as ns
2if __name__ == '__main__': main[]
6if __name__ == '__main__': main[]
7def main[]: myFunction[]
6 def main[]: myFunction[]
7import nameScript as ns
7import nameScript as ns
1import nameScript as ns
9 ns.myFunction[]
0def main[]: myFunction[]
6 def main[]: myFunction[]
7ns.myFunction[]
3 def main[]: myFunction[]
9if __name__ == '__main__': main[]
0if __name__ == '__main__': main[]
1 if __name__ == '__main__': main[]
2if __name__ == '__main__': main[]
3if __name__ == '__main__': main[]
3 if __name__ == '__main__': main[]
5if __name__ == '__main__': main[]
6if __name__ == '__main__': main[]
7def main[]: myFunction[]
6 def main[]: myFunction[]
7import nameScript as ns
0import nameScript as ns
1import nameScript as ns
2if __name__ == '__main__': main[]
6if __name__ == '__main__': main[]
7def main[]: myFunction[]
6 def main[]: myFunction[]
7import nameScript as ns
7import nameScript as ns
1Now the interpreter is given the command to run File1.py. python File1.py Output : File1 __name__ = __main__ File1 is being run directly And then File2.py is run. python File2.py Output : File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly
import nameScript as ns
9 ns.myFunction[]
0if __name__ == “__main__” is the part of the program that runs when the script is run
from the command line using a command like python File1.py.