2

我正在学习 julia (v1.6) 并且我正在尝试创建一个 julia 函数来从 python 类(pycall 等效)运行 julia 方法,其中该方法是打印。

我尝试了不同的事情,并且在创建类或调用方法或其他方法时遇到了不同的错误。

https://github.com/JuliaPy/PyCall.jl(作为参考)

这是我正在使用的代码。

using PyCall
# Python Class
@pydef mutable struct python_class
    function __init__(self, a)
        self.a = a
    end
    # Julia Method embeded in Python Class
    function python_method(self, a)
        println(a)
end

# Julia calling python class with julia method
function main(class::PyObject, a::string)
    # Instantiate Class
    b = class(a)
    # Call Method
    b.python_method(a)
end

a = "This is a string"

# Run it
main(python_class, a)

end

预期输出相当于 python 中的 print('This is a string') 。

有人可以帮我让它工作吗?

先感谢您

4

1 回答 1

3

这一切似乎都有效,除了你有一个错误的地方,它不end应该是。Stringstring

julia> @pydef mutable struct python_class
           function __init__(self, a)
               self.a = a
           end
           # Julia Method embeded in Python Class
           function python_method(self, a)
               println(a)
       end

       end
PyObject <class 'python_class'>


julia> function main(class::PyObject, a::String)
           # Instantiate Class
           b = class(a)
           # Call Method
           b.python_method(a)
       end
main (generic function with 1 method)

julia> a = "This is a string"
"This is a string"

julia> main(python_class, a)
This is a string
于 2021-05-28T09:28:02.703 回答