1

在 Python 2 中一切正常,但在 Python 3 中,它不起作用。我使用 Gohlke 的 Python 包中的 whl 安装了包。问题是,在 Python 3 中,所有整数都是长整数。当传递给 C# 函数时,它们作为 64 位整数传递,这会导致将 Int32 作为参数的函数失败并显示错误“没有方法与给定参数匹配”。我尝试使用 Convert.ToInt32() 将其转换为 Int32,但这会返回一个 Python int,它又是 64 位。

那么,问题来了,如何在 Python3 中正确使用 Int32?

哦,当我这样尝试时,它出现了溢出错误:

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

1 回答 1

0

Unint32 或 Int32 需要从系统加载:

import clr
clr.AddReference("System")
from System import UInt32, Int32

print(UInt32(2))
print(Int32(2))
于 2018-05-13T18:55:29.467 回答