pub struct PyTuple(/* private fields */);
Expand description
Represents a Python tuple
object.
Values of this type are accessed via PyO3’s smart pointers, e.g. as
Py<PyTuple>
or Bound<'py, PyTuple>
.
For APIs available on tuple
objects, see the PyTupleMethods
trait which is implemented for
Bound<'py, PyTuple>
.
Implementations§
Source§impl PyTuple
impl PyTuple
Sourcepub fn new<'py, T, U>(
py: Python<'py>,
elements: impl IntoIterator<Item = T, IntoIter = U>,
) -> PyResult<Bound<'py, PyTuple>>where
T: IntoPyObject<'py>,
U: ExactSizeIterator<Item = T>,
pub fn new<'py, T, U>(
py: Python<'py>,
elements: impl IntoIterator<Item = T, IntoIter = U>,
) -> PyResult<Bound<'py, PyTuple>>where
T: IntoPyObject<'py>,
U: ExactSizeIterator<Item = T>,
Constructs a new tuple with the given elements.
If you want to create a PyTuple
with elements of different or unknown types, create a Rust
tuple with the given elements and convert it at once using into_pyobject()
.
(IntoPyObject
is implemented for tuples of up to 12 elements.)
To create a PyTuple
from an iterable that doesn’t implement ExactSizeIterator
,
collect the elements into a Vec
first.
§Examples
use pyo3::prelude::*;
use pyo3::types::PyTuple;
Python::attach(|py| {
let elements: Vec<i32> = vec![0, 1, 2, 3, 4, 5];
let tuple = PyTuple::new(py, elements)?;
assert_eq!(format!("{:?}", tuple), "(0, 1, 2, 3, 4, 5)");
// alternative using `into_pyobject()`
let tuple = (0, "hello", true).into_pyobject(py)?;
assert_eq!(format!("{:?}", tuple), "(0, 'hello', True)");
})
§Panics
This function will panic if element
’s ExactSizeIterator
implementation is incorrect.
All standard library structures implement this trait correctly, if they do, so calling this
function using Vec
<T>
or &[T]
will always succeed.
Trait Implementations§
Source§impl PyTypeInfo for PyTuple
impl PyTypeInfo for PyTuple
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Source§fn is_type_of(obj: &Bound<'_, PyAny>) -> bool
fn is_type_of(obj: &Bound<'_, PyAny>) -> bool
object
is an instance of this type or a subclass of this type.