6.1 Object Protocol
- int PyObject_Print(PyObject *o, FILE *fp, int flags)
-
Print an object o, on file fp. Returns
-1
on error.
The flags argument is used to enable certain printing options. The
only option currently supported is Py_PRINT_RAW; if given,
the str() of the object is written instead of the
repr().
- int PyObject_HasAttrString(PyObject *o, char *attr_name)
-
Returns
1
if o has the attribute attr_name, and
0
otherwise. This is equivalent to the Python expression
"hasattr(o, attr_name)".
This function always succeeds.
- PyObject* PyObject_GetAttrString(PyObject *o,
char *attr_name)
-
Return value:
New reference.
Retrieve an attribute named attr_name from object o.
Returns the attribute value on success, or NULL on failure.
This is the equivalent of the Python expression
"o.attr_name".
- int PyObject_HasAttr(PyObject *o, PyObject *attr_name)
-
Returns
1
if o has the attribute attr_name, and
0
otherwise. This is equivalent to the Python expression
"hasattr(o, attr_name)".
This function always succeeds.
- PyObject* PyObject_GetAttr(PyObject *o,
PyObject *attr_name)
-
Return value:
New reference.
Retrieve an attribute named attr_name from object o.
Returns the attribute value on success, or NULL on failure.
This is the equivalent of the Python expression
"o.attr_name".
- int PyObject_SetAttrString(PyObject *o, char *attr_name, PyObject *v)
-
Set the value of the attribute named attr_name, for object
o, to the value v. Returns
-1
on failure. This is
the equivalent of the Python statement "o.attr_name =
v".
- int PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v)
-
Set the value of the attribute named attr_name, for
object o,
to the value v. Returns
-1
on failure. This is
the equivalent of the Python statement "o.attr_name =
v".
- int PyObject_DelAttrString(PyObject *o, char *attr_name)
-
Delete attribute named attr_name, for object o. Returns
-1
on failure. This is the equivalent of the Python
statement: "del o.attr_name".
- int PyObject_DelAttr(PyObject *o, PyObject *attr_name)
-
Delete attribute named attr_name, for object o. Returns
-1
on failure. This is the equivalent of the Python
statement "del o.attr_name".
- int PyObject_Cmp(PyObject *o1, PyObject *o2, int *result)
-
Compare the values of o1 and o2 using a routine provided
by o1, if one exists, otherwise with a routine provided by
o2. The result of the comparison is returned in result.
Returns
-1
on failure. This is the equivalent of the Python
statement "result = cmp(o1, o2)".
- int PyObject_Compare(PyObject *o1, PyObject *o2)
-
Compare the values of o1 and o2 using a routine provided
by o1, if one exists, otherwise with a routine provided by
o2. Returns the result of the comparison on success. On error,
the value returned is undefined; use PyErr_Occurred() to
detect an error. This is equivalent to the Python
expression "cmp(o1, o2)".
- PyObject* PyObject_Repr(PyObject *o)
-
Return value:
New reference.
Compute a string representation of object o. Returns the
string representation on success, NULL on failure. This is
the equivalent of the Python expression "repr(o)".
Called by the repr() built-in function
and by reverse quotes.
- PyObject* PyObject_Str(PyObject *o)
-
Return value:
New reference.
Compute a string representation of object o. Returns the
string representation on success, NULL on failure. This is
the equivalent of the Python expression "str(o)".
Called by the str() built-in function and
by the print statement.
- PyObject* PyObject_Unicode(PyObject *o)
-
Compute a Unicode string representation of object o. Returns the
Unicode string representation on success, NULL on failure. This is
the equivalent of the Python expression "unistr(o)".
Called by the unistr() built-in function.
- int PyObject_IsInstance(PyObject *inst, PyObject *cls)
-
Return
1
if inst is an instance of the class cls or
a subclass of cls. If cls is a type object rather than a
class object, PyObject_IsInstance() returns 1
if
inst is of type cls. If inst is not a class
instance and cls is neither a type object or class object,
inst must have a __class__ attribute -- the class
relationship of the value of that attribute with cls will be
used to determine the result of this function.
New in version 2.1.
Subclass determination is done in a fairly straightforward way, but
includes a wrinkle that implementors of extensions to the class system
may want to be aware of. If A and B are class
objects, B is a subclass of A if it inherits from
A either directly or indirectly. If either is not a class
object, a more general mechanism is used to determine the class
relationship of the two objects. When testing if B is a
subclass of A, if A is B,
PyObject_IsSubclass() returns true. If A and
B are different objects, B's __bases__ attribute
is searched in a depth-first fashion for A -- the presence of
the __bases__ attribute is considered sufficient for this
determination.
- int PyObject_IsSubclass(PyObject *derived,
PyObject *cls)
-
Returns
1
if the class derived is identical to or derived
from the class cls, otherwise returns 0
. In case of an
error, returns -1
. If either derived or cls is not
an actual class object, this function uses the generic algorithm
described above.
New in version 2.1.
- int PyCallable_Check(PyObject *o)
-
Determine if the object o is callable. Return
1
if the
object is callable and 0
otherwise.
This function always succeeds.
- PyObject* PyObject_CallObject(PyObject *callable_object,
PyObject *args)
-
Return value:
New reference.
Call a callable Python object callable_object, with
arguments given by the tuple args. If no arguments are
needed, then args may be NULL. Returns the result of the
call on success, or NULL on failure. This is the equivalent
of the Python expression "apply(callable_object, args)".
- PyObject* PyObject_CallFunction(PyObject *callable_object,
char *format, ...)
-
Return value:
New reference.
Call a callable Python object callable_object, with a
variable number of C arguments. The C arguments are described
using a Py_BuildValue() style format string. The format may
be NULL, indicating that no arguments are provided. Returns the
result of the call on success, or NULL on failure. This is
the equivalent of the Python expression "apply(callable_object,
args)".
- PyObject* PyObject_CallMethod(PyObject *o,
char *method, char *format, ...)
-
Return value:
New reference.
Call the method named m of object o with a variable number
of C arguments. The C arguments are described by a
Py_BuildValue() format string. The format may be NULL,
indicating that no arguments are provided. Returns the result of the
call on success, or NULL on failure. This is the equivalent of the
Python expression "o.method(args)".
Note that special method names, such as __add__(),
__getitem__(), and so on are not supported. The specific
abstract-object routines for these must be used.
- int PyObject_Hash(PyObject *o)
-
Compute and return the hash value of an object o. On
failure, return
-1
. This is the equivalent of the Python
expression "hash(o)".
- int PyObject_IsTrue(PyObject *o)
-
Returns
1
if the object o is considered to be true, and
0
otherwise. This is equivalent to the Python expression
"not not o".
This function always succeeds.
- PyObject* PyObject_Type(PyObject *o)
-
Return value:
New reference.
On success, returns a type object corresponding to the object
type of object o. On failure, returns NULL. This is
equivalent to the Python expression "type(o)".
- int PyObject_Length(PyObject *o)
-
Return the length of object o. If the object o provides
both sequence and mapping protocols, the sequence length is
returned. On error,
-1
is returned. This is the equivalent
to the Python expression "len(o)".
- PyObject* PyObject_GetItem(PyObject *o, PyObject *key)
-
Return value:
New reference.
Return element of o corresponding to the object key or
NULL on failure. This is the equivalent of the Python expression
"o[key]".
- int PyObject_SetItem(PyObject *o, PyObject *key, PyObject *v)
-
Map the object key to the value v.
Returns
-1
on failure. This is the equivalent
of the Python statement "o[key] = v".
- int PyObject_DelItem(PyObject *o, PyObject *key)
-
Delete the mapping for key from o. Returns
-1
on
failure. This is the equivalent of the Python statement "del
o[key]".
- int PyObject_AsFileDescriptor(PyObject *o)
-
Derives a file-descriptor from a Python object. If the object
is an integer or long integer, its value is returned. If not, the
object's fileno() method is called if it exists; the method
must return an integer or long integer, which is returned as the file
descriptor value. Returns
-1
on failure.
See About this document... for information on suggesting changes.