从 python class 创建一个 vim 实例?

Create a vim instance from a python class?

我正在调用一个 python 函数,该函数 returns 是一个字典,它可以工作,但我只是想知道是否有办法在 vimscript 中创建这样的实例 m.multi(3), m.div(20,5).这只是一个例子,不确定最后两行。

python3 <<EOF
class Multiply:
    @staticmethod
    def myfunc(n):
        print("Answer is:", n * n)
EOF
python3 m = Multiply
python3 vim.command(f"let multi={m}")
call multi(4)

Multi 定义为 VimScript 函数并在其中调用 python:

python3 <<EOF
import vim

class Multiply:
    @staticmethod
    def myfunc(n):
        print("Answer is:", n * n)
EOF

" Single global instance
python3 m = Multiply()

function! Multi(i)
    " int() is required as vim.eval() returns a string even for int arg
    python3 m.myfunc(int(vim.eval('a:i')))
endfunction

测试::call Multi(4)

我不认为这是可能的,将面向对象的东西留在 python 代码中。