Struct pyo3::types::PyDict [−][src]
#[repr(transparent)]pub struct PyDict(_);
Expand description
Represents a Python dict
.
Implementations
Creates a new dictionary from the sequence given.
The sequence must consist of (PyObject, PyObject)
. This is
equivalent to dict([("a", 1), ("b", 2)])
.
Returns an error on invalid input. In the case of key collisions, this keeps the last entry seen.
Returns a new dictionary that contains the same key-value pairs as self.
This is equivalent to the Python expression dict(self)
.
Return the number of items in the dictionary.
This is equivalent to the Python expression len(self)
.
Determines if the dictionary contains the specified key.
This is equivalent to the Python expression key in self
.
Gets an item from the dictionary.
Returns None
if the item is not present, or if an error occurs.
To get a KeyError
for non-existing keys, use PyAny::get_item
.
pub fn set_item<K, V>(&self, key: K, value: V) -> PyResult<()> where
K: ToPyObject,
V: ToPyObject,
pub fn set_item<K, V>(&self, key: K, value: V) -> PyResult<()> where
K: ToPyObject,
V: ToPyObject,
Sets an item value.
This is equivalent to the Python statement self[key] = value
.
Deletes an item.
This is equivalent to the Python statement del self[key]
.
Returns a list of dict keys.
This is equivalent to the Python expression list(dict.keys())
.
Returns a list of dict values.
This is equivalent to the Python expression list(dict.values())
.
Returns a list of dict items.
This is equivalent to the Python expression list(dict.items())
.
Methods from Deref<Target = PyAny>
Convert this PyAny to a concrete Python type.
Determines whether this object has the given attribute.
This is equivalent to the Python expression hasattr(self, attr_name)
.
Retrieves an attribute value.
This is equivalent to the Python expression self.attr_name
.
pub fn setattr<N, V>(&self, attr_name: N, value: V) -> PyResult<()> where
N: ToBorrowedObject,
V: ToBorrowedObject,
pub fn setattr<N, V>(&self, attr_name: N, value: V) -> PyResult<()> where
N: ToBorrowedObject,
V: ToBorrowedObject,
Sets an attribute value.
This is equivalent to the Python expression self.attr_name = value
.
Deletes an attribute.
This is equivalent to the Python expression del self.attr_name
.
Compares two Python objects.
This is equivalent to:
if self == other:
return Equal
elif a < b:
return Less
elif a > b:
return Greater
else:
raise TypeError("PyAny::compare(): All comparisons returned false")
pub fn rich_compare<O>(
&self,
other: O,
compare_op: CompareOp
) -> PyResult<&PyAny> where
O: ToPyObject,
pub fn rich_compare<O>(
&self,
other: O,
compare_op: CompareOp
) -> PyResult<&PyAny> where
O: ToPyObject,
Compares two Python objects.
Depending on the value of compare_op
, this is equivalent to one of the
following Python expressions:
- CompareOp::Eq:
self == other
- CompareOp::Ne:
self != other
- CompareOp::Lt:
self < other
- CompareOp::Le:
self <= other
- CompareOp::Gt:
self > other
- CompareOp::Ge:
self >= other
Determines whether this object is callable.
Calls the object.
This is equivalent to the Python expression self(*args, **kwargs)
.
Calls the object without arguments.
This is equivalent to the Python expression self()
.
Calls the object with only positional arguments.
This is equivalent to the Python expression self(*args)
.
Calls a method on the object.
This is equivalent to the Python expression self.name(*args, **kwargs)
.
Example
use pyo3::types::IntoPyDict;
let gil = Python::acquire_gil();
let py = gil.python();
let list = vec![3, 6, 5, 4, 7].to_object(py);
let dict = vec![("reverse", true)].into_py_dict(py);
list.call_method(py, "sort", (), Some(dict)).unwrap();
assert_eq!(list.extract::<Vec<i32>>(py).unwrap(), vec![7, 6, 5, 4, 3]);
let new_element = 1.to_object(py);
list.call_method(py, "append", (new_element,), None).unwrap();
assert_eq!(list.extract::<Vec<i32>>(py).unwrap(), vec![7, 6, 5, 4, 3, 1]);
Calls a method on the object without arguments.
This is equivalent to the Python expression self.name()
.
Calls a method on the object with only positional arguments.
This is equivalent to the Python expression self.name(*args)
.
Returns whether the object is considered to be true.
This is equivalent to the Python expression bool(self)
.
Returns whether the object is considered to be None.
This is equivalent to the Python expression self is None
.
Returns true if the sequence or mapping has a length of 0.
This is equivalent to the Python expression len(self) == 0
.
Gets an item from the collection.
This is equivalent to the Python expression self[key]
.
pub fn set_item<K, V>(&self, key: K, value: V) -> PyResult<()> where
K: ToBorrowedObject,
V: ToBorrowedObject,
pub fn set_item<K, V>(&self, key: K, value: V) -> PyResult<()> where
K: ToBorrowedObject,
V: ToBorrowedObject,
Sets a collection item value.
This is equivalent to the Python expression self[key] = value
.
Deletes an item from the collection.
This is equivalent to the Python expression del self[key]
.
Takes an object and returns an iterator for it.
This is typically a new iterator but if the argument is an iterator, this returns itself.
Returns the Python type pointer for this object.
Casts the PyObject to a concrete Python object type.
This can cast only to native Python types, not types implemented in Rust.
Extracts some type from the Python object.
This is a wrapper function around FromPyObject::extract()
.
Returns the reference count for the Python object.
Computes the “repr” representation of self.
This is equivalent to the Python expression repr(self)
.
Computes the “str” representation of self.
This is equivalent to the Python expression str(self)
.
Retrieves the hash code of self.
This is equivalent to the Python expression hash(self)
.
Returns the length of the sequence or mapping.
This is equivalent to the Python expression len(self)
.
Returns the list of attributes of this object.
This is equivalent to the Python expression dir(self)
.
Checks whether this object is an instance of type T
.
This is equivalent to the Python expression isinstance(self, T)
.
Trait Implementations
type Layout = PyDictObject
type Layout = PyDictObject
Layout
type BaseLayout = PyObject
type BaseLayout = PyObject
Layout of Basetype.
type Initializer = PyNativeTypeInitializer<Self>
type Initializer = PyNativeTypeInitializer<Self>
Initializer for layout
type AsRefTarget = Self
type AsRefTarget = Self
Utility type to make Py::as_ref work
PyTypeObject instance for this type.
Checks if object
is an instance of this type or a subclass of this type.
Class doc string
Checks if object
is an instance of this type.
Auto Trait Implementations
impl !RefUnwindSafe for PyDict
impl UnwindSafe for PyDict
Blanket Implementations
Mutably borrows from an owned value. Read more
Convert from an arbitrary PyObject
. Read more
Convert from an arbitrary borrowed PyObject
. Read more
Convert from an arbitrary PyObject
or panic. Read more
Convert from an arbitrary PyObject
or panic. Read more
Convert from an arbitrary PyObject
. Read more
Convert from an arbitrary borrowed PyObject
. Read more
Convert from an arbitrary borrowed PyObject
. Read more
Cast from a concrete Python object type to PyObject.
Cast from a concrete Python object type to PyObject. With exact type check.
Returns the safe abstraction over the type object.