首页 > 解决方案 > 使用带有 Pythonnet 的 mXparser 的构造函数错误

问题描述

我正在尝试使用 Python 中的 mXparser。它加载没有问题,但是一旦尝试使用字符串调用表达式函数(如帮助示例中所示),我就会收到一个错误,TypeError: no constructor matches given arguments.

import clr  
dllpath = r'C:\...\GitHub\MathParser.org-mXparser\CURRENT\c-sharp\bin\Release\MathParser.org-mXparser.dll'
import org.mariuszgromada.math.mxparser as mx
expr_01 = mx.Expression('2 + 1')

最初我认为这意味着我需要指定我传递的字符串的类型,但我认为不是这样。有任何想法吗?我使用 .NET Framework 4.5.2 编译了 mXparser dll(我没有选择使它对 COM 可见的选项)。

标签: python.netinteropoverloadingpython.net

解决方案


您可以运行 mx.Expression.Overloads以查看它需要什么参数类型。类型可以通过from System import String等导入

明确地,构造c#类型

from System import String
str3 = String('2 + 1')
expr_01 = mx.Expression(str3)

推荐阅读