namespace in python

kimthoasparkle

New member
## không gian tên trong Python

Không gian tên là một tập hợp các tên được sử dụng để xác định các đối tượng.Trong Python, các không gian tên được sử dụng để tổ chức và quản lý tên của các biến, chức năng và các lớp.

Có hai loại không gian tên trong Python: ** không gian tên toàn cầu ** và ** không gian tên cục bộ **.Không gian tên toàn cầu là không gian tên mặc định và nó chứa tất cả các tên được xác định trong mã cấp cao nhất của chương trình Python.Không gian tên cục bộ được tạo khi một hàm được gọi và nó chứa tất cả các tên được xác định trong hàm.

Khi một tên được sử dụng trong chương trình Python, người phiên dịch trước tiên tìm tên trong không gian tên cục bộ.Nếu tên không được tìm thấy trong không gian tên địa phương, thì thông dịch viên sẽ tìm tên trong không gian tên toàn cầu.Nếu tên không được tìm thấy trong không gian tên, một lỗi sẽ được nêu ra.

Bạn có thể sử dụng các hàm `Globals ()` và `locals ()` để có được danh sách các tên trong không gian tên toàn cầu và không gian tên địa phương, tương ứng.

`` `Python
>>> Globals ()
{'__name__': '__main__',
'__doc__': Không có,
'__package__': Không có,
'__loader__': <class '_frozen_importlib.builtinimporter'>,
'__spec__': Không có,
'In': <Bản in chức năng tích hợp>,
'sum': <chức năng tích hợp Sum>}

>>> người dân địa phương ()
{}
`` `

Bạn cũng có thể sử dụng câu lệnh `del` để xóa tên khỏi không gian tên.

`` `Python
>>> Del Globals () ['In']
>>> In ('Điều này sẽ không hoạt động!')
TraceBack (cuộc gọi gần đây nhất cuối cùng):
Tệp "<Stdin>", dòng 1, trong <mô -đun>
NameError: tên 'in' không được xác định
`` `

Không gian tên có thể được sử dụng để ngăn chặn xung đột tên.Ví dụ: bạn có thể xác định một hàm có cùng tên với biến toàn cầu mà không gây ra bất kỳ vấn đề nào.

`` `Python
DEF PRINT ():
In ('Đây là một chức năng!')

In ('Đây là một biến toàn cầu!')
`` `

Khi bạn gọi hàm `print ()` trong ví dụ trên, trình thông dịch trước tiên sẽ tìm tên `print` trong không gian tên cục bộ.Vì hàm `print ()` được xác định trong không gian tên cục bộ, trình thông dịch sẽ gọi hàm thay vì biến toàn cầu.

## hashtags

* #Python
* #namespaces
* #Programming
* #phát triển
* #oop
=======================================
## Namespace in Python

A namespace is a collection of names that are used to identify objects. In Python, namespaces are used to organize and manage the names of variables, functions, and classes.

There are two types of namespaces in Python: the **global namespace** and the **local namespace**. The global namespace is the default namespace, and it contains all of the names that are defined in the top-level code of a Python program. The local namespace is created when a function is called, and it contains all of the names that are defined within the function.

When a name is used in a Python program, the interpreter first looks for the name in the local namespace. If the name is not found in the local namespace, the interpreter then looks for the name in the global namespace. If the name is not found in either namespace, an error is raised.

You can use the `globals()` and `locals()` functions to get a list of the names in the global namespace and the local namespace, respectively.

```python
>>> globals()
{'__name__': '__main__',
'__doc__': None,
'__package__': None,
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__spec__': None,
'print': <built-in function print>,
'sum': <built-in function sum>}

>>> locals()
{}
```

You can also use the `del` statement to delete a name from a namespace.

```python
>>> del globals()['print']
>>> print('This will not work!')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'print' is not defined
```

Namespaces can be used to prevent name conflicts. For example, you can define a function with the same name as a global variable without causing any problems.

```python
def print():
print('This is a function!')

print('This is a global variable!')
```

When you call the `print()` function in the above example, the interpreter will first look for the name `print` in the local namespace. Since the function `print()` is defined in the local namespace, the interpreter will call the function instead of the global variable.

## Hashtags

* #Python
* #namespaces
* #Programming
* #development
* #oop
 
Join ToolsKiemTrieuDoGroup
Back
Top
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock