Я пытаюсь взаимодействовать с библиотекой python через PyCall.jl, где библиотека возвращает объект python (PyObject в Julia) с атрибутами, которые я хочу изменить в Julia. Например, скажем, у меня есть следующий фиктивный класс Python,
import numpy as np
class MyNumpy:
def __init__(self,n,m):
self.array = np.zeros((n,m))
self.size = (n,m)
Теперь в Джулии я загружаю этот класс Python, используя PyCall.jl и instantiate, что-то вроде:
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).
Как можно было бы изменить значение атрибута PyCall.jl PyObject в JuliaНапример, могу ли я использовать указатели для этого, если да, то как? Извините, если это очевидно, но мне не повезло, и я не могу понять, как это сделать, используя документацию PyCall.jl. Заранее спасибо.
PS Настоящая библиотека python - это не то, что можно легко изменить.