Mojo struct
PythonObject
A Python object.
Fields
- py_object (
PyObjectPtr
): A pointer to the underlying Python object.
Implemented traits
AnyType
,
Boolable
,
CollectionElement
,
Copyable
,
EqualityComparable
,
Formattable
,
Hashable
,
ImplicitlyBoolable
,
Indexer
,
Intable
,
KeyElement
,
Movable
,
SizedRaising
,
Stringable
Methods
__init__
__init__(inout self: Self)
Initialize the object with a None
value.
__init__(inout self: Self, *, other: Self)
Copy the object.
Args:
- other (
Self
): The value to copy.
__init__(inout self: Self, ptr: PyObjectPtr)
Initialize the object with a PyObjectPtr
value.
Ownership of the reference will be assumed by PythonObject
.
Args:
- ptr (
PyObjectPtr
): ThePyObjectPtr
to take ownership of.
__init__(inout self: Self, none: None)
Initialize a none value object from a None
literal.
Args:
- none (
None
): None.
__init__(inout self: Self, none: NoneType)
Initialize a none value object from a None
literal.
Args:
- none (
NoneType
): None.
__init__(inout self: Self, integer: Int)
Initialize the object with an integer value.
Args:
- integer (
Int
): The integer value.
__init__(inout self: Self, float: SIMD[float64, 1])
Initialize the object with an floating-point value.
Args:
- float (
SIMD[float64, 1]
): The float value.
__init__[dt: DType](inout self: Self, value: SIMD[dt, 1])
Initialize the object with a generic scalar value. If the scalar value type is bool, it is converted to a boolean. Otherwise, it is converted to the appropriate integer or floating point type.
Parameters:
- dt (
DType
): The scalar value type.
Args:
- value (
SIMD[dt, 1]
): The scalar value.
__init__(inout self: Self, value: Bool)
Initialize the object from a bool.
Args:
- value (
Bool
): The boolean value.
__init__(inout self: Self, value: StringLiteral)
Initialize the object from a string literal.
Args:
- value (
StringLiteral
): The string value.
__init__(inout self: Self, strref: StringRef)
Initialize the object from a string reference.
Args:
- strref (
StringRef
): The string reference.
__init__(inout self: Self, string: String)
Initialize the object from a string.
Args:
- string (
String
): The string value.
__init__[*Ts: Movable](inout self: Self, value: ListLiteral[Ts])
Initialize the object from a list literal.
Parameters:
- *Ts (
Movable
): The list element types.
Args:
- value (
ListLiteral[Ts]
): The list value.
__init__[*Ts: Movable](inout self: Self, value: Tuple[Ts])
Initialize the object from a tuple literal.
Parameters:
- *Ts (
Movable
): The tuple element types.
Args:
- value (
Tuple[Ts]
): The tuple value.
__init__(inout self: Self, value: Dict[PythonObject, PythonObject])
Initialize the object from a dictionary of PythonObjects.
Args:
- value (
Dict[PythonObject, PythonObject]
): The dictionary value.
__copyinit__
__copyinit__(inout self: Self, existing: Self)
Copy the object.
This increments the underlying refcount of the existing object.
Args:
- existing (
Self
): The value to copy.
__del__
__del__(owned self: Self)
Destroy the object.
This decrements the underlying refcount of the pointed-to object.
__bool__
__bool__(self: Self) -> Bool
Evaluate the boolean value of the object.
Returns:
Whether the object evaluates as true.
__getitem__
__getitem__(self: Self, *args: Self) -> Self
Return the value for the given key or keys.
Args:
- *args (
Self
): The key or keys to access on this object.
Returns:
The value corresponding to the given key for this object.
__setitem__
__setitem__(inout self: Self, *args: Self, *, value: Self)
Set the value with the given key or keys.
Args:
- *args (
Self
): The key or keys to set on this object. - value (
Self
): The value to set.
__neg__
__neg__(self: Self) -> Self
Negative.
Calls the underlying object's __neg__
method.
Returns:
The result of prefixing this object with a -
operator. For most numerical objects, this returns the negative.
__pos__
__pos__(self: Self) -> Self
Positive.
Calls the underlying object's __pos__
method.
Returns:
The result of prefixing this object with a +
operator. For most numerical objects, this does nothing.
__invert__
__invert__(self: Self) -> Self
Inversion.
Calls the underlying object's __invert__
method.
Returns:
The logical inverse of this object: a bitwise representation where all bits are flipped, from zero to one, and from one to zero.
__lt__
__lt__(self: Self, rhs: Self) -> Self
Less than comparator. This lexicographically compares strings and lists.
Args:
- rhs (
Self
): Right hand value.
Returns:
True if the object is less than the right hard argument.
__le__
__le__(self: Self, rhs: Self) -> Self
Less than or equal to comparator. This lexicographically compares strings and lists.
Args:
- rhs (
Self
): Right hand value.
Returns:
True if the object is less than or equal to the right hard argument.
__eq__
__eq__(self: Self, rhs: Self) -> Bool
Equality comparator. This compares the elements of strings and lists.
Args:
- rhs (
Self
): Right hand value.
Returns:
True if the objects are equal.
__ne__
__ne__(self: Self, rhs: Self) -> Bool
Inequality comparator. This compares the elements of strings and lists.
Args:
- rhs (
Self
): Right hand value.
Returns:
True if the objects are not equal.
__gt__
__gt__(self: Self, rhs: Self) -> Self
Greater than comparator. This lexicographically compares the elements of strings and lists.
Args:
- rhs (
Self
): Right hand value.
Returns:
True if the left hand value is greater.
__ge__
__ge__(self: Self, rhs: Self) -> Self
Greater than or equal to comparator. This lexicographically compares the elements of strings and lists.
Args:
- rhs (
Self
): Right hand value.
Returns:
True if the left hand value is greater than or equal to the right hand value.
__is__
__is__(self: Self, other: Self) -> Bool
Test if the PythonObject is the other
PythonObject, the same as x is y
in Python.
Args:
- other (
Self
): The right-hand-side value in the comparison.
Returns:
True if they are the same object and False otherwise.
__isnot__
__isnot__(self: Self, other: Self) -> Bool
Test if the PythonObject is not the other
PythonObject, the same as x is not y
in Python.
Args:
- other (
Self
): The right-hand-side value in the comparison.
Returns:
True if they are not the same object and False otherwise.
__add__
__add__(self: Self, rhs: Self) -> Self
Addition and concatenation.
Calls the underlying object's __add__
method.
Args:
- rhs (
Self
): Right hand value.
Returns:
The sum or concatenated values.
__sub__
__sub__(self: Self, rhs: Self) -> Self
Subtraction.
Calls the underlying object's __sub__
method.
Args:
- rhs (
Self
): Right hand value.
Returns:
The difference.
__mul__
__mul__(self: Self, rhs: Self) -> Self
Multiplication.
Calls the underlying object's __mul__
method.
Args:
- rhs (
Self
): Right hand value.
Returns:
The product.
__truediv__
__truediv__(self: Self, rhs: Self) -> Self
Division.
Calls the underlying object's __truediv__
method.
Args:
- rhs (
Self
): The right-hand-side value by which this object is divided.
Returns:
The result of dividing the right-hand-side value by this.
__floordiv__
__floordiv__(self: Self, rhs: Self) -> Self
Return the division of self and rhs rounded down to the nearest integer.
Calls the underlying object's __floordiv__
method.
Args:
- rhs (
Self
): The right-hand-side value by which this object is divided.
Returns:
The result of dividing this by the right-hand-side value, modulo any remainder.
__mod__
__mod__(self: Self, rhs: Self) -> Self
Return the remainder of self divided by rhs.
Calls the underlying object's __mod__
method.
Args:
- rhs (
Self
): The value to divide on.
Returns:
The remainder of dividing self by rhs.
__pow__
__pow__(self: Self, exp: Self) -> Self
Raises this object to the power of the given value.
Args:
- exp (
Self
): The exponent.
Returns:
The result of raising this by the given exponent.
__lshift__
__lshift__(self: Self, rhs: Self) -> Self
Bitwise left shift.
Args:
- rhs (
Self
): The right-hand-side value by which this object is bitwise shifted to the left.
Returns:
This value, shifted left by the given value.
__rshift__
__rshift__(self: Self, rhs: Self) -> Self
Bitwise right shift.
Args:
- rhs (
Self
): The right-hand-side value by which this object is bitwise shifted to the right.
Returns:
This value, shifted right by the given value.
__and__
__and__(self: Self, rhs: Self) -> Self
Bitwise AND.
Args:
- rhs (
Self
): The right-hand-side value with which this object is bitwise AND'ed.
Returns:
The bitwise AND result of this and the given value.
__or__
__or__(self: Self, rhs: Self) -> Self
Bitwise OR.
Args:
- rhs (
Self
): The right-hand-side value with which this object is bitwise OR'ed.
Returns:
The bitwise OR result of this and the given value.
__xor__
__xor__(self: Self, rhs: Self) -> Self
Exclusive OR.
Args:
- rhs (
Self
): The right-hand-side value with which this object is exclusive OR'ed.
Returns:
The exclusive OR result of this and the given value.
__radd__
__radd__(self: Self, lhs: Self) -> Self
Reverse addition and concatenation.
Calls the underlying object's __radd__
method.
Args:
- lhs (
Self
): The left-hand-side value to which this object is added or concatenated.
Returns:
The sum.
__rsub__
__rsub__(self: Self, lhs: Self) -> Self
Reverse subtraction.
Calls the underlying object's __rsub__
method.
Args:
- lhs (
Self
): The left-hand-side value from which this object is subtracted.
Returns:
The result of subtracting this from the given value.
__rmul__
__rmul__(self: Self, lhs: Self) -> Self
Reverse multiplication.
Calls the underlying object's __rmul__
method.
Args:
- lhs (
Self
): The left-hand-side value that is multiplied by this object.
Returns:
The product of the multiplication.
__rtruediv__
__rtruediv__(self: Self, lhs: Self) -> Self
Reverse division.
Calls the underlying object's __rtruediv__
method.
Args:
- lhs (
Self
): The left-hand-side value that is divided by this object.
Returns:
The result of dividing the given value by this.
__rfloordiv__
__rfloordiv__(self: Self, lhs: Self) -> Self
Reverse floor division.
Calls the underlying object's __rfloordiv__
method.
Args:
- lhs (
Self
): The left-hand-side value that is divided by this object.
Returns:
The result of dividing the given value by this, modulo any remainder.
__rmod__
__rmod__(self: Self, lhs: Self) -> Self
Reverse modulo.
Calls the underlying object's __rmod__
method.
Args:
- lhs (
Self
): The left-hand-side value that is divided by this object.
Returns:
The remainder from dividing the given value by this.
__rpow__
__rpow__(self: Self, lhs: Self) -> Self
Reverse power of.
Args:
- lhs (
Self
): The number that is raised to the power of this object.
Returns:
The result of raising the given value by this exponent.
__rlshift__
__rlshift__(self: Self, lhs: Self) -> Self
Reverse bitwise left shift.
Args:
- lhs (
Self
): The left-hand-side value that is bitwise shifted to the left by this object.
Returns:
The given value, shifted left by this.
__rrshift__
__rrshift__(self: Self, lhs: Self) -> Self
Reverse bitwise right shift.
Args:
- lhs (
Self
): The left-hand-side value that is bitwise shifted to the right by this object.
Returns:
The given value, shifted right by this.
__rand__
__rand__(self: Self, lhs: Self) -> Self
Reverse bitwise and.
Args:
- lhs (
Self
): The left-hand-side value that is bitwise AND'ed with this object.
Returns:
The bitwise AND result of the given value and this.
__ror__
__ror__(self: Self, lhs: Self) -> Self
Reverse bitwise OR.
Args:
- lhs (
Self
): The left-hand-side value that is bitwise OR'ed with this object.
Returns:
The bitwise OR result of the given value and this.
__rxor__
__rxor__(self: Self, lhs: Self) -> Self
Reverse exclusive OR.
Args:
- lhs (
Self
): The left-hand-side value that is exclusive OR'ed with this object.
Returns:
The exclusive OR result of the given value and this.
__iadd__
__iadd__(inout self: Self, rhs: Self)
Immediate addition and concatenation.
Args:
- rhs (
Self
): The right-hand-side value that is added to this object.
__isub__
__isub__(inout self: Self, rhs: Self)
Immediate subtraction.
Args:
- rhs (
Self
): The right-hand-side value that is subtracted from this object.
__imul__
__imul__(inout self: Self, rhs: Self)
In-place multiplication.
Calls the underlying object's __imul__
method.
Args:
- rhs (
Self
): The right-hand-side value by which this object is multiplied.
__itruediv__
__itruediv__(inout self: Self, rhs: Self)
Immediate division.
Args:
- rhs (
Self
): The value by which this object is divided.
__ifloordiv__
__ifloordiv__(inout self: Self, rhs: Self)
Immediate floor division.
Args:
- rhs (
Self
): The value by which this object is divided.
__imod__
__imod__(inout self: Self, rhs: Self)
Immediate modulo.
Args:
- rhs (
Self
): The right-hand-side value that is used to divide this object.
__ipow__
__ipow__(inout self: Self, rhs: Self)
Immediate power of.
Args:
- rhs (
Self
): The exponent.
__ilshift__
__ilshift__(inout self: Self, rhs: Self)
Immediate bitwise left shift.
Args:
- rhs (
Self
): The right-hand-side value by which this object is bitwise shifted to the left.
__irshift__
__irshift__(inout self: Self, rhs: Self)
Immediate bitwise right shift.
Args:
- rhs (
Self
): The right-hand-side value by which this object is bitwise shifted to the right.
__iand__
__iand__(inout self: Self, rhs: Self)
Immediate bitwise AND.
Args:
- rhs (
Self
): The right-hand-side value with which this object is bitwise AND'ed.
__ixor__
__ixor__(inout self: Self, rhs: Self)
Immediate exclusive OR.
Args:
- rhs (
Self
): The right-hand-side value with which this object is exclusive OR'ed.
__ior__
__ior__(inout self: Self, rhs: Self)
Immediate bitwise OR.
Args:
- rhs (
Self
): The right-hand-side value with which this object is bitwise OR'ed.
__iter__
__iter__(self: Self) -> _PyIter
Iterate over the object.
Returns:
An iterator object.
Raises:
If the object is not iterable.
__getattr__
__getattr__(self: Self, name: StringLiteral) -> Self
Return the value of the object attribute with the given name.
Args:
- name (
StringLiteral
): The name of the object attribute to return.
Returns:
The value of the object attribute with the given name.
__setattr__
__setattr__(self: Self, name: StringLiteral, newValue: Self)
Set the given value for the object attribute with the given name.
Args:
- name (
StringLiteral
): The name of the object attribute to set. - newValue (
Self
): The new value to be set for that attribute.
__as_bool__
__as_bool__(self: Self) -> Bool
Evaluate the boolean value of the object.
Returns:
Whether the object evaluates as true.
__len__
__len__(self: Self) -> Int
Returns the length of the object.
Returns:
The length of the object.
__hash__
__hash__(self: Self) -> UInt
Returns the length of the object.
Returns:
The length of the object.
__call__
__call__(self: Self, *args: Self, *, owned **kwargs: Self) -> Self
Call the underlying object as if it were a function.
Args:
- *args (
Self
): Positional arguments to the function. - **kwargs (
Self
): Keyword arguments to the function.
Returns:
The return value from the called object.
Raises:
If the function cannot be called for any reason.
to_float64
to_float64(self: Self) -> SIMD[float64, 1]
Returns a float representation of the object.
Returns:
A floating point value that represents this object.
__index__
__index__(self: Self) -> Int
Returns an index representation of the object.
Returns:
An index value that represents this object.
__int__
__int__(self: Self) -> Int
Returns an integral representation of the object.
Returns:
An integral value that represents this object.
unsafe_get_as_pointer
unsafe_get_as_pointer[type: DType](self: Self) -> UnsafePointer[SIMD[$0, 1], 0, 0, alignof[::AnyType,__mlir_type.!kgen.target]() if triple_is_nvidia_cuda() else 1]
Convert a Python-owned and managed pointer into a Mojo pointer.
Warning: converting from an integer to a pointer is unsafe! The compiler assumes the resulting pointer DOES NOT alias any Mojo-derived pointer. This is OK because the pointer originates from Python.
Parameters:
- type (
DType
): The desired DType of the pointer.
Returns:
An UnsafePointer
for the underlying Python data.
__str__
__str__(self: Self) -> String
Returns a string representation of the object.
Calls the underlying object's __str__
method.
Returns:
A string that represents this object.
format_to
format_to(self: Self, inout writer: Formatter)
Formats this Python object to the provided formatter.
Args:
- writer (
Formatter
): The formatter to write to.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!
😔 What went wrong?