PyObject_Print
(
PyObject
*o
, FILE
*fp
, int
flags
)
¶
打印对象
o
,在文件
fp
。返回
-1
on error. The flags argument is used to enable certain printing options. The only option currently supported is
Py_PRINT_RAW
;若给定,
str()
对象被写入而不是
repr()
.
PyObject_HasAttr
(
PyObject
*o
,
PyObject
*attr_name
)
¶
返回
1
if
o
has the attribute
attr_name
,和
0
otherwise. This is equivalent to the Python expression
hasattr(o, attr_name)
. This function always succeeds.
PyObject_HasAttrString
(
PyObject
*o
, const char
*attr_name
)
¶
返回
1
if
o
has the attribute
attr_name
,和
0
otherwise. This is equivalent to the Python expression
hasattr(o, attr_name)
. This function always succeeds.
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
.
PyObject_GetAttrString
(
PyObject
*o
, const 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
.
PyObject_GenericGetAttr
(
PyObject
*o
,
PyObject
*name
)
¶
Generic attribute getter function that is meant to be put into a type object’s
tp_getattro
slot. It looks for a descriptor in the dictionary of classes in the object’s MRO as well as an attribute in the object’s
__dict__
(if present). As outlined in
实现描述符
, data descriptors take preference over instance attributes, while non-data descriptors don’t. Otherwise, an
AttributeError
被引发。
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
. Raise an exception and return
-1
on failure; return
0
on success. This is the equivalent of the Python statement
o.attr_name = v
.
若
v
is
NULL
, the attribute is deleted, however this feature is deprecated in favour of using
PyObject_DelAttr()
.
PyObject_SetAttrString
(
PyObject
*o
, const char
*attr_name
,
PyObject
*v
)
¶
Set the value of the attribute named
attr_name
, for object
o
, to the value
v
. Raise an exception and return
-1
on failure; return
0
on success. This is the equivalent of the Python statement
o.attr_name = v
.
若
v
is
NULL
, the attribute is deleted, however this feature is deprecated in favour of using
PyObject_DelAttrString()
.
PyObject_GenericSetAttr
(
PyObject
*o
,
PyObject
*name
,
PyObject
*value
)
¶
Generic attribute setter and deleter function that is meant to be put into a type object’s
tp_setattro
slot. It looks for a data descriptor in the dictionary of classes in the object’s MRO, and if found it takes preference over setting or deleting the attribute in the instance dictionary. Otherwise, the attribute is set or deleted in the object’s
__dict__
(if present). On success,
0
is returned, otherwise an
AttributeError
is raised and
-1
被返回。
PyObject_DelAttr
(
PyObject
*o
,
PyObject
*attr_name
)
¶
Delete attribute named
attr_name
, for object
o
。返回
-1
on failure. This is the equivalent of the Python statement
del o.attr_name
.
PyObject_DelAttrString
(
PyObject
*o
, const char
*attr_name
)
¶
Delete attribute named
attr_name
, for object
o
。返回
-1
on failure. This is the equivalent of the Python statement
del o.attr_name
.
PyObject_RichCompare
(
PyObject
*o1
,
PyObject
*o2
, int
opid
)
¶
Compare the values of
o1
and
o2
using the operation specified by
opid
, which must be one of
Py_LT
,
Py_LE
,
Py_EQ
,
Py_NE
,
Py_GT
,或
Py_GE
, corresponding to
<
,
<=
,
==
,
!=
,
>
,或
>=
respectively. This is the equivalent of the Python expression
o1 op o2
,其中
op
is the operator corresponding to
opid
. Returns the value of the comparison on success, or
NULL
当故障时。
PyObject_RichCompareBool
(
PyObject
*o1
,
PyObject
*o2
, int
opid
)
¶
Compare the values of
o1
and
o2
using the operation specified by
opid
, which must be one of
Py_LT
,
Py_LE
,
Py_EQ
,
Py_NE
,
Py_GT
,或
Py_GE
, corresponding to
<
,
<=
,
==
,
!=
,
>
,或
>=
respectively. Returns
-1
当出错时,
0
if the result is false,
1
otherwise. This is the equivalent of the Python expression
o1 op o2
,其中
op
is the operator corresponding to
opid
.
注意
若
o1
and
o2
are the same object,
PyObject_RichCompareBool()
will always return
1
for
Py_EQ
and
0
for
Py_NE
.
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
。返回
-1
on failure. This is the equivalent of the Python statement
result = cmp(o1, o2)
.
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_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_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
语句。
PyObject_Bytes
(
PyObject
*o
)
¶
Compute a bytes representation of object
o
. In 2.x, this is just an alias for
PyObject_Str()
.
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
unicode(o)
. Called by the
unicode()
内置函数。
PyObject_IsInstance
(
PyObject
*inst
,
PyObject
*cls
)
¶
返回
1
if
inst
is an instance of the class
cls
或子类化的
cls
,或
0
if not. On error, returns
-1
and sets an exception. If
cls
is a type object rather than a class object,
PyObject_IsInstance()
返回
1
if
inst
是类型
cls
。若
cls
is a tuple, the check will be done against every entry in
cls
. The result will be
1
when at least one of the checks returns
1
, otherwise it will be
0
。若
inst
is not a class instance and
cls
is neither a type object, nor a class object, nor a tuple,
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.
2.1 版新增。
2.2 版改变: Support for a tuple as the second argument added.
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
是子类化的
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
是子类化的
A
,若
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.
PyObject_IsSubclass
(
PyObject
*derived
,
PyObject
*cls
)
¶
返回
1
if the class
derived
is identical to or derived from the class
cls
,否则返回
0
. In case of an error, returns
-1
。若
cls
is a tuple, the check will be done against every entry in
cls
. The result will be
1
when at least one of the checks returns
1
, otherwise it will be
0
。若
derived
or
cls
is not an actual class object (or tuple), this function uses the generic algorithm described above.
2.1 版新增。
Changed in version 2.3: Older versions of Python did not support a tuple as the second argument.
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_Call
(
PyObject
*callable_object
,
PyObject
*args
,
PyObject
*kw
)
¶
Call a callable Python object
callable_object
, with arguments given by the tuple
args
, and named arguments given by the dictionary
kw
. If no named arguments are needed,
kw
可以是
NULL
.
args
不得为
NULL
, use an empty tuple if no arguments are needed. Returns the result of the call on success, or
NULL
on failure. This is the equivalent of the Python expression
apply(callable_object, args, kw)
or
callable_object(*args, **kw)
.
2.2 版新增。
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
可以是
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)
or
callable_object(*args)
.
PyObject_CallFunction
(
PyObject
*callable
, char
*format
, ...
)
¶
Call a callable Python object
callable
, 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, args)
or
callable(*args)
. Note that if you only pass
PyObject *
args,
PyObject_CallFunctionObjArgs()
is a faster alternative.
PyObject_CallMethod
(
PyObject
*o
, char
*method
, char
*format
, ...
)
¶
Call the method named
方法
of object
o
with a variable number of C arguments. The C arguments are described by a
Py_BuildValue()
format string that should produce a tuple. 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 if you only pass
PyObject *
args,
PyObject_CallMethodObjArgs()
is a faster alternative.
PyObject_CallFunctionObjArgs
(
PyObject
*callable
, ..., NULL
)
¶
Call a callable Python object
callable
, with a variable number of
PyObject*
arguments. The arguments are provided as a variable number of parameters followed by
NULL
. Returns the result of the call on success, or
NULL
当故障时。
2.2 版新增。
PyObject_CallMethodObjArgs
(
PyObject
*o
,
PyObject
*name
, ..., NULL
)
¶
Calls a method of the object
o
, where the name of the method is given as a Python string object in
name
. It is called with a variable number of
PyObject*
arguments. The arguments are provided as a variable number of parameters followed by
NULL
. Returns the result of the call on success, or
NULL
当故障时。
2.2 版新增。
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)
.
PyObject_HashNotImplemented
(
PyObject
*o
)
¶
设置
TypeError
indicating that
type(o)
is not hashable and return
-1
. This function receives special treatment when stored in a
tp_hash
slot, allowing a type to explicitly indicate to the interpreter that it is not hashable.
2.6 版新增。
PyObject_IsTrue
(
PyObject
*o
)
¶
返回
1
if the object
o
is considered to be true, and
0
otherwise. This is equivalent to the Python expression
not not o
. On failure, return
-1
.
PyObject_Not
(
PyObject
*o
)
¶
返回
0
if the object
o
is considered to be true, and
1
otherwise. This is equivalent to the Python expression
not o
. On failure, return
-1
.
PyObject_Type
(
PyObject
*o
)
¶
当
o
为非
NULL
, returns a type object corresponding to the object type of object
o
. On failure, raises
SystemError
并返回
NULL
. This is equivalent to the Python expression
type(o)
. This function increments the reference count of the return value. There’s really no reason to use this function instead of the common expression
o->ob_type
, which returns a pointer of type
PyTypeObject*
, except when the incremented reference count is needed.
PyObject_TypeCheck
(
PyObject
*o
,
PyTypeObject
*type
)
¶
Return true if the object o 是类型 type 或子类型的 type . Both parameters must be non- NULL .
2.2 版新增。
PyObject_Length
(
PyObject
*o
)
¶
PyObject_Size
(
PyObject
*o
)
¶
Return the length of object
o
. If the object
o
provides either the sequence and mapping protocols, the sequence length is returned. On error,
-1
is returned. This is the equivalent to the Python expression
len(o)
.
Changed in version 2.5:
These functions returned an
int
type. This might require changes in your code for properly supporting 64-bit systems.
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]
.
PyObject_SetItem
(
PyObject
*o
,
PyObject
*key
,
PyObject
*v
)
¶
Map the object
key
to the value
v
. Raise an exception and return
-1
on failure; return
0
on success. This is the equivalent of the Python statement
o[key] = v
.
PyObject_DelItem
(
PyObject
*o
,
PyObject
*key
)
¶
Delete the mapping for
key
from
o
。返回
-1
on failure. This is the equivalent of the Python statement
del o[key]
.
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
当故障时。
PyObject_Dir
(
PyObject
*o
)
¶
This is equivalent to the Python expression
dir(o)
, returning a (possibly empty) list of strings appropriate for the object argument, or
NULL
if there was an error. If the argument is
NULL
, this is like the Python
dir()
, returning the names of the current locals; in this case, if no execution frame is active then
NULL
is returned but
PyErr_Occurred()
will return false.