在Python 3中使用Int32和PythonNet

时间:2015-06-05 20:43:39

标签: c# python integer python-3.4 python.net

Python 2中的一切都运行良好,但在Python 3中,它并不起作用。我使用Gohlke的Python软件包中的whl安装了软件包。问题是,在Python 3中,所有整数都很长。当传递给C#函数时,它们作为64位整数传递,这导致以Int32作为参数的函数失败并出现错误"没有方法匹配给定的参数"。我尝试使用Convert.ToInt32()将其转换为Int32,但它返回一个Python int,再次为64位。

所以,问题是,如何在Python3中正确使用Int32?

哦,当我像这样尝试时,它出现了OverflowError:

>>> print(Int32(2))
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    print(Int32(2))
OverflowError: value too large to convert

1 个答案:

答案 0 :(得分:0)

需要从System:

加载Unint32或Int32
import clr
clr.AddReference("System")
from System import UInt32, Int32

print(UInt32(2))
print(Int32(2))