Julia 如何将辛表达式转换为多项式?

Julia 如何将辛表达式转换为多项式?,julia,sympy,pycall,Julia,Sympy,Pycall,我想把一个symphy表达式,例如x+y(x=symbols(“x”),对于y,也是这样)改成一个多项式,然后得到这个多项式的生成器和这个多项式的长度 我试过了 op=x+y op = op[:as_poly](domain="C") op_a = op.x[:gens] nab = op[:length]() 但它似乎不起作用 我得到的错误是: ERROR: MethodError: no method matching getindex(::Sym, ::Symbol) Closest c

我想把一个symphy表达式,例如
x+y
x=symbols(“x”)
,对于
y
,也是这样)改成一个多项式,然后得到这个多项式的生成器和这个多项式的长度

我试过了

op=x+y
op = op[:as_poly](domain="C")
op_a = op.x[:gens]
nab = op[:length]()
但它似乎不起作用

我得到的错误是:

ERROR: MethodError: no method matching getindex(::Sym, ::Symbol)
Closest candidates are:
  getindex(::Sym, ::Sym...) at /Users/midow/.julia/packages/SymPy/1Cwgd/src/utils.jl:18
  getindex(::Number) at number.jl:75
  getindex(::Number, ::Integer) at number.jl:77
  ...
Stacktrace:
 [1] top-level scope at REPL[11]:1

正如@phipsgabler提到的,接口从
getindex
更改为
getproperty
so

using SymPy
x=symbols("x")
y=symbols("y")
op = op.as_poly(domain="C")
op_a = op.x.gens
nab = op.length()

应该给你想要的。

嗨@Marouane1994!我修正了您的代码格式,并尝试改进文本的某些部分。请确保我没有更改任何相关部分的含义。我从未使用过
PyCall
,但我们最近在Julia中得到了
getproperty
重载。可能
getindex
接口已被弃用?您是否尝试过类似于
op.as_poly(domain=“C”)