首先,如评论中所述,这是一个很大的问题,为什么您根本想做这样的事情.您应该仔细考虑是否有其他选择.
话虽如此,通过扩展很容易做到. Python本身的构建使其易于使用extend it via C or C++.通过Cython进行操作甚至更加容易.
下面概述了如何构建一个使用整数p和v的Python调用函数.它将把值v写入数字地址为p的内存地址.
注意再一次注意,这只是一个技术答案.整个操作以及部分操作都值得怀疑,您应该考虑要实现的目标.
创建一个文件modify.h,内容如下:
void modify(int p, int v);
创建一个文件modify.c,内容如下:
#include "modify.h"
void modify(int p, int v)
{
*(int *)(p) = v;
}
创建一个文件modify.pyx,内容如下:
cdef extern from "modify.h"
void modify(int p, int v)
def py_modify(p, v):
modify(p, v)
最后,创建setup.py,内容如下:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [Extension(
name="modify",
sources=["modify.pyx", "modify.c"])]
setup(
name = "modify",
cmdclass = {"build_ext": build_ext},
ext_modules = ext_modules,
# ext_modules = cythonize(ext_modules) ? not in 0.14.1
# version=
# description=
# author=
# author_email=
)
我希望您将此答案仅用于学习目的.