GNU Info

Info Node: (python2.1-api.info)Object Protocol

(python2.1-api.info)Object Protocol


Next: Number Protocol Prev: Abstract Objects Layer Up: Abstract Objects Layer
Enter node , (file) or (file)node

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)'
     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)'
     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)'
     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)'
     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.  _Added in Python
     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.
     _Added in Python 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)'
     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, ...)'
     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, ...)'
     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)'
     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 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.


automatically generated by info2www version 1.2.2.9