Julia 函数在 python 类中运行 julia 方法

问题描述

我正在学习 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')。

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

提前致谢

解决方法

这一切似乎都有效,只是您在错误的位置有一个 end,它应该是 String 而不是 string

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