我正在尝试通过PyCall.jl与python库进行交互,其中该库返回一个具有我想在Julia中修改的属性的python对象(Julia中的PyObject)。例如说我有以下虚拟python类,
import numpy as np
class MyNumpy:
def __init__(self,n,m):
self.array = np.zeros((n,m))
self.size = (n,m)
现在在Julia中,我使用PyCall.jl加载此python类并实例化,类似于:
using PyCall
mynumpy = pyimport("MyNumpy.MyNumpy")
pyobject = mynumpy(3,3)
...
> pyobject.array
> 3×3 Array{Float64,2}:
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
...
pyobject.array[1,1] = 1.0
> pyobject.array
> 3×3 Array{Float64,2}:
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
执行的最后一行代码没有任何错误,但是在调查pyobject.array[1,1]
时,该值没有改变(即保持0.0)。
例如,如何在Julia中更改Pycall.jl PyObject属性值,如果可以的话,我可以使用指针吗?很抱歉,如果这很明显,但是我没有运气不好,无法使用PyCall.jl文档找出解决方法。预先感谢。
P.S。实际的python库不是很容易修改的东西。