我是python新手,我正在尝试使用python包装器为epanet编写一些代码,我相信这是SWIG包装的。我需要使用一种方法,如下文中所述。然而,我似乎无法让方法接受第三个参数“values:”,的任何类型的值。。我尝试的任何操作都会得到错误:TypeError:在方法“ptrn_set”中,类型为“double*”的参数3
如何在Python中将值/值转换为“double*”?解决办法是什么?在
感谢你的帮助。。。在
"""
ptrn_set(ph, index, values, len) -> int
Parameters
----------
ph: Handle
index: int
values: double *
len: int
"""
return _toolkit.ptrn_set(ph, index, values, len)
我在这里发现的: https://docs.python.org/2.4/lib/typesnumeric.html 浮点数是在C中使用double实现的
你试过漂浮吗?在
Python本身不支持
double *
类型的值。在C语言中,它是指向双精度浮点数字的指针。在Python中,实际上每个名称都是一个指针,但不能有一个(本机)值作为指针。在从上下文来看,他们实际上想要一个双精度数组。他们真的应该写为}与它兼容。你可以试试
double []
,但是{如果这很管用,那就去做吧。如果不起作用,请查看expanetpython包装器是否提供了一种构造此类值的方法。在
如果Python不能提供这样一个表达式库,那么就不要尝试使用这种方法来构建cffi。我想
x = ffi.new("double[10]")
会给你一个10个双精度数组。在相关问题 更多 >
编程相关推荐