Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust Pyo3绑定:如何在泛型Rust类型上重用python方法_Python_Rust_Pyo3 - Fatal编程技术网

Rust Pyo3绑定:如何在泛型Rust类型上重用python方法

Rust Pyo3绑定:如何在泛型Rust类型上重用python方法,python,rust,pyo3,Python,Rust,Pyo3,我有一个比这更复杂的问题。但我认为这会使它崩溃。我有一些泛型结构,它有三个构造函数来获得一个具体类型的结构。除了构造函数之外,它们都有相同的泛型方法。我想要的是这样的东西: 使用pyo3::prelude::*; #[pyclass] 结构AnyVec{ 维克:维克, } //一般方法 #[方法] impl AnyVec{ fn推送(和多个自身,v:T){ 自矢量推力(v) } fn pop(&mut self,v:T)->T{ self.vec_u.pop() } } #[方法] impl A

我有一个比这更复杂的问题。但我认为这会使它崩溃。我有一些泛型结构,它有三个构造函数来获得一个具体类型的结构。除了构造函数之外,它们都有相同的泛型方法。我想要的是这样的东西:

使用pyo3::prelude::*;
#[pyclass]
结构AnyVec{
维克:维克,
}
//一般方法
#[方法]
impl AnyVec{
fn推送(和多个自身,v:T){
自矢量推力(v)
}
fn pop(&mut self,v:T)->T{
self.vec_u.pop()
}
}
#[方法]
impl AnyVec{
#[新]
fn new()->Self{
AnyVec{vec\:vec![]}
}
}
#[方法]
impl AnyVec{
#[新]
fn new()->Self{
AnyVec{vec\:vec![]}
}
}
当我试图编译这个的时候
pyo3
警告我它不能使用泛型<代码>错误:#[pyclass]不能具有泛型参数

是否可以创建某种类型的泛型基
,具体类型从中继承

完成;这是我的
货物。toml

[package]
name = "example"
edition = "2018"

[dependencies]
pyo3 = { version="0.9.0-alpha.1", features = ["extension-module"] }

[lib]
name = "example"
crate-type = ["cdylib"]

如果要在python中使用
AnyVec
,它应该包含
Vec
,而不是
Vec
。你还需要实现。嗯。。也许这不是最好的例子。这些泛型类型不是python类型。但锈菌类型不同。我有一个通用包装器类,它可以由实现相同特性的4个不同结构具体化。如果python中要使用
AnyVec
,它应该包含
Vec
,而不是
Vec
。你还需要实现。嗯。。也许这不是最好的例子。这些泛型类型不是python类型。但锈菌类型不同。我有一个通用包装器类,它可以由4个实现相同特性的不同结构具体化。