Hướng dẫn what is __name__ in python - __name__ trong python là gì

Giới thiệu về biến _ _name_ _ và cách sử dụng của nó trong Python

Bạn rất có thể đã thấy biến __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[]

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.

Tại sao biến _ _name_ _ được sử dụng?

Biến __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.

Đô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.

Những giá trị nào có thể chứa biến __name__?

Khi bạn chạy tập lệnh của mình, biến __name__ bằng

def myFunction[]:    print 'The value of __name__ is ' + __name__
0. Khi bạn nhập tập lệnh chứa, nó sẽ chứa tên của tập lệnh.

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 *.

  • _ Và __ có nghĩa là gì trong Python?
  • Việc sử dụng Double Undercore [__] trước tên [cụ thể là tên phương thức] không phải là một quy ước; Nó có một ý nghĩa cụ thể cho thông dịch viên. Python mang các tên này và nó được sử dụng để tránh các cuộc đụng độ tên với các tên được xác định bởi các lớp con.
  • 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[]
    7
    def main[]:    myFunction[]
    8
    def main[]:    myFunction[]
    9
    if __name__ == '__main__':    main[]
    0

    if __name__ == '__main__':    main[]
    1
    if __name__ == '__main__':    main[]
    2
    if __name__ == '__main__':    main[]
    3
    if __name__ == '__main__':    main[]
    3
    if __name__ == '__main__':    main[]
    5
    if __name__ == '__main__':    main[]
    6

    if __name__ == '__main__':    main[]
    7
    def main[]:    myFunction[]
    6
    def main[]:    myFunction[]
    7
    import nameScript as ns
    0
    import nameScript as ns
    1

    import nameScript as ns
    2
    if __name__ == '__main__':    main[]
    6

    if __name__ == '__main__':    main[]
    7
    def main[]:    myFunction[]
    6
    def main[]:    myFunction[]
    7
    import nameScript as ns
    7
    import nameScript as ns
    1

    import nameScript as ns
    9
    ns.myFunction[]
    0

    def main[]:    myFunction[]
    6
    def main[]:    myFunction[]
    7
    ns.myFunction[]
    3
    def main[]:    myFunction[]
    9
    if __name__ == '__main__':    main[]
    0

    if __name__ == '__main__':    main[]
    1
    if __name__ == '__main__':    main[]
    2
    if __name__ == '__main__':    main[]
    3
    if __name__ == '__main__':    main[]
    3
    if __name__ == '__main__':    main[]
    5
    if __name__ == '__main__':    main[]
    6

    if __name__ == '__main__':    main[]
    7
    def main[]:    myFunction[]
    6
    def main[]:    myFunction[]
    7
    import nameScript as ns
    0
    import nameScript as ns
    1

    import nameScript as ns
    2
    if __name__ == '__main__':    main[]
    6

    if __name__ == '__main__':    main[]
    7
    def main[]:    myFunction[]
    6
    def main[]:    myFunction[]
    7
    import nameScript as ns
    7
    import nameScript as ns
    1

    Now 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.

    Việc sử dụng __ tên __ trong Python là gì?

    __name__ là một biến tích hợp để đánh giá theo tên của mô-đun hiện tại. Do đó, nó có thể được sử dụng để kiểm tra xem tập lệnh hiện tại đang được tự mình chạy hay được nhập ở một nơi khác bằng cách kết hợp nó với câu lệnh IF, như được hiển thị bên dưới.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.

    __ Tệp __ có nghĩa là gì trong Python?

    __file__ là tên đường dẫn của tệp mà mô -đun được tải, nếu nó được tải từ một tệp.the pathname of the file from which the module was loaded, if it was loaded from a file.

    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 *.specifies all modules that shall be loaded and imported into the current namespace when us use from package import * .

    _ Và __ có nghĩa là gì trong Python?

    Việc sử dụng Double Undercore [__] trước tên [cụ thể là tên phương thức] không phải là một quy ước;Nó có một ý nghĩa cụ thể cho thông dịch viên.Python mang các tên này và nó được sử dụng để tránh các cuộc đụng độ tên với các tên được xác định bởi các lớp con.it has a specific meaning to the interpreter. Python mangles these names and it is used to avoid name clashes with names defined by subclasses.

    Bài Viết Liên Quan

    Chủ Đề