代码之家  ›  专栏  ›  技术社区  ›  nivniv

Numba-jitted函数内部参数(numpy数组)的内存地址

  •  1
  • nivniv  · 技术社区  · 6 年前

    我想看看 numba

    @numba.jit(nopython=True)
    def f(x):
        return id(x)
    

    TypingError: cannot determine Numba type of <class 'builtin_function_or_method'>
    

    这完全有道理(我知道 id 不一定是记忆地址,但这是我的想法)。然而:

    1. 如何在jitted函数中获取参数的内存地址?

    1 回复  |  直到 6 年前
        1
  •  2
  •   JoshAdel    6 年前

    id ,您只能使用以下列出的python功能:

    http://numba.pydata.org/numba-doc/latest/reference/pysupported.html

    我的理解是,numba遵循python的pass-by-reference与pass-by-value的约定(尽管事实上两者并不完全相同)。更像是按对象调用。像标量这样的不可变对象的行为就像它们是按值传递的一样。列表和数组等可变对象的行为类似于引用。

    要确认这一点,最简单的方法是尝试传入不同参数类型的变量,在函数中修改它们,并在调用函数后查看它们是否更改。