# 通过 ID 拿到变量的值
主要用于跨命名空间的访问
**注意**:一定要保证该变量还存在,不然可能会读到不知道什么东西
## 方法 1
```python
from _ctypes import PyObj_FromPtr
a = 123
a_id = id(a)
print(PyObj_FromPtr(a_id))
```
## 方法 2
```python
import ctypes
a = 123
a_id = id(a)
print(ctypes.cast(a_id, ctypes.py_object).value)
```
# 通过 ID 修改变量的值
相当于 C 中的指针传递,然后通过指针修改原变量的值
**注意**:一定要保证该变量存在,不然可能改到其他内存
```python
import ctypes
a = 123
a_id = id(a)
b = 321
b_id = id(b)
ctypes.memmove(a_id,b_id,object.__sizeof__(b_id))
print(a)
```