我试图检查numba
是按值传递参数还是按引用传递参数,所以我写了以下内容:
@numba.jit(nopython=True)
def f(x):
return id(x)
运行时,会导致:
TypingError: cannot determine Numba type of <class 'builtin_function_or_method'>
这完全有道理(我知道id
不一定是内存地址,但这就是我的想法)。但是:
如何在jitted函数中获取参数的内存地址?
numba是按值传递参数还是按引用传递参数(我如何验证这一点)?
Tags:
关于对
id
的调用,您只能使用中列出的python功能:http://numba.pydata.org/numba-doc/latest/reference/pysupported.html
我的理解是,numba遵循python的按引用传递vs按值传递的约定(尽管实际上两者都不完全相同)。更像是按对象调用。像标量这样的不可变对象的行为就像它们是通过值传递的。列表和数组等可变对象的行为类似于引用。你知道吗
确认这一点最简单的方法就是尝试传入不同参数类型的变量,在函数中修改它们,并查看它们在调用函数后是否发生更改。你知道吗
相关问题 更多 >
编程相关推荐