Julia 函数 运行 python class 中的 julia 方法

Julia function to run julia method in python class

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

我尝试了不同的方法,但在创建 class 或调用方法或其他方法时遇到了不同的错误。

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