在Python 3中使用Int32与PythonNet

本文关键字:Int32 PythonNet Python | 更新日期: 2023-09-27 17:53:52

在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

在Python 3中使用Int32与PythonNet

Unint32或Int32需要从System中加载:

import clr
clr.AddReference("System")
from System import UInt32, Int32
print(UInt32(2))
print(Int32(2))
相关文章: