オブジェクトプロトコル (object protocol)¶
-
PyObject *
Py_NotImplemented¶ 与えられたオブジェクトとメソッドの引数の型の組み合わせの処理が未実装である印として使われる、
未実装 (NotImplemented)シングルトン。
-
Py_RETURN_NOTIMPLEMENTED¶ Properly handle returning
Py_NotImplementedfrom within a C function (that is, create a new strong reference to NotImplemented and return it).
-
int
PyObject_Print(PyObject *o, FILE *fp, int flags)¶ オブジェクト o をファイル fp に出力します。失敗すると
-1を返します。 flags 引数は何らかの出力オプションを有効にする際に使います。現在サポートされている唯一のオプションはPy_PRINT_RAWです; このオプションを指定すると、repr()の代わりにstr()を使ってオブジェクトを書き込みます。
-
int
PyObject_HasAttr(PyObject *o, PyObject *attr_name)¶ - Part of the Stable ABI.
o が属性 attr_name を持つときに
1を、それ以外のときに0を返します。この関数は Python の式hasattr(o, attr_name)と同じです。この関数は常に成功します。__getattr__()メソッドや__getattribute__()メソッドの呼び出し中に起こる例外は抑制されることに注意してください。 エラーを報告させるには、代わりにPyObject_GetAttr()を使ってください。
-
int
PyObject_HasAttrString(PyObject *o, const char *attr_name)¶ - Part of the Stable ABI.
o が属性 attr_name を持つときに
1を、それ以外のときに0を返します。この関数は Python の式hasattr(o, attr_name)と同じです。この関数は常に成功します。__getattr__()メソッドや__getattribute__()メソッドの呼び出し中や、一時的な文字列オブジェクトの作成中に起こる例外は抑制されることに注意してください。 エラーを報告させるには、代わりにPyObject_GetAttrString()を使ってください。
-
PyObject *
PyObject_GetAttr(PyObject *o, PyObject *attr_name)¶ - Return value: New reference. Part of the Stable ABI.
オブジェクト o から、名前 attr_name の属性を取得します。成功すると属性値を返し失敗すると
NULLを返します。この関数は Python の式o.attr_nameと同じです。
-
PyObject *
PyObject_GetAttrString(PyObject *o, const char *attr_name)¶ - Return value: New reference. Part of the Stable ABI.
オブジェクト o から、名前 attr_name の属性を取得します。成功すると属性値を返し失敗すると
NULLを返します。この関数は Python の式o.attr_nameと同じです。
-
PyObject *
PyObject_GenericGetAttr(PyObject *o, PyObject *name)¶ - Return value: New reference. Part of the Stable ABI.
型オブジェクトの
tp_getattroスロットに置かれる、属性を取得する総称的な関数です。この関数は、 (もし存在すれば) オブジェクトの属性__dict__に加え、オブジェクトの MRO にあるクラスの辞書にあるデスクリプタを探します。 デスクリプタ (descriptor) の実装 で概要が述べられている通り、データのデスクリプタはインスタンスの属性より優先され、非データデスクリプタは後回しにされます。見付からなかった場合はAttributeErrorを送出します。
-
int
PyObject_SetAttr(PyObject *o, PyObject *attr_name, PyObject *v)¶ - Part of the Stable ABI.
オブジェクト o の attr_name という名の属性に、値 v を設定します。 失敗すると例外を送出し
-1を返します; 成功すると0を返します。 この関数は Python の式o.attr_name = vと同じです。v が
NULLのとき、アトリビュートは削除されます。この動作はPyObject_DelAttr()のため、非推奨となっていますが、削除される予定はありません。
-
int
PyObject_SetAttrString(PyObject *o, const char *attr_name, PyObject *v)¶ - Part of the Stable ABI.
オブジェクト o の attr_name という名の属性に、値 v を設定します。 失敗すると例外を送出し
-1を返します; 成功すると0を返します。 この関数は Python の式o.attr_name = vと同じです。v が
NULLの場合は属性が削除されますが、この機能は非推奨でありPyObject_DelAttrString()を使うのが望ましいです。
-
int
PyObject_GenericSetAttr(PyObject *o, PyObject *name, PyObject *value)¶ - Part of the Stable ABI.
属性の設定と削除を行う汎用的な関数で、型オブジェクトの
tp_setattroスロットに置かれます。 オブジェクトの MRO にあるクラスの辞書からデータディスクリプタを探し、見付かった場合はインスタンスの辞書にある属性の設定や削除よりも優先されます。 そうでない場合は、(もし存在すれば) オブジェクトの__dict__に属性を設定もしくは削除します。 成功すると0が返され、そうでない場合はAttributeErrorが送出され-1が返されます。
-
int
PyObject_DelAttr(PyObject *o, PyObject *attr_name)¶ オブジェクト o の attr_name という名の属性を削除します。失敗すると
-1を返します。この関数は Python の文del o.attr_nameと同じです。
-
int
PyObject_DelAttrString(PyObject *o, const char *attr_name)¶ オブジェクト o の attr_name という名の属性を削除します。失敗すると
-1を返します。この関数は Python の文del o.attr_nameと同じです。
-
PyObject *
PyObject_GenericGetDict(PyObject *o, void *context)¶ - Return value: New reference. Part of the Stable ABI since version 3.10.
__dict__デスクリプタの getter の総称的な実装です。必要な場合は、辞書を作成します。バージョン 3.3 で追加.
-
int
PyObject_GenericSetDict(PyObject *o, PyObject *value, void *context)¶ - Part of the Stable ABI since version 3.7.
__dict__デスクリプタの setter の総称的な実装です。この実装では辞書を削除することは許されていません。バージョン 3.3 で追加.
-
PyObject *
PyObject_RichCompare(PyObject *o1, PyObject *o2, int opid)¶ - Return value: New reference. Part of the Stable ABI.
o1 と o2 を opid に指定した演算によって比較します。 opid は
Py_LT,Py_LE,Py_EQ,Py_NE,Py_GT, またはPy_GE, のいずれかでなければならず、それぞれ<,<=,==,!=,>, および>=に対応します。この関数は Python の式o1 op o2と同じで、opが opid に対応する演算子です。成功すると比較結果の値を返し失敗するとNULLを返します。
-
int
PyObject_RichCompareBool(PyObject *o1, PyObject *o2, int opid)¶ - Part of the Stable ABI.
o1 と o2 を opid に指定した演算によって比較します。 opid は
Py_LT,Py_LE,Py_EQ,Py_NE,Py_GT, またはPy_GE, のいずれかでなければならず、それぞれ<,<=,==,!=,>, および>=に対応します。比較結果が真ならば1を、偽ならば0を、エラーが発生すると-1を返します。この関数は Python の式o1 op o2と同じで、opが opid に対応する演算子です。
注釈
o1 と o2 が同一のオブジェクトである場合、 PyObject_RichCompareBool() は Py_EQ に対して常に 1 を返し、 Py_NE に対して常に 0 を返します。
-
PyObject *
PyObject_Format(PyObject *obj, PyObject *format_spec)¶ - Part of the Stable ABI.
Format obj using format_spec. This is equivalent to the Python expression
format(obj, format_spec).format_spec may be
NULL. In this case the call is equivalent toformat(obj). Returns the formatted string on success,NULLon failure.
-
PyObject *
PyObject_Repr(PyObject *o)¶ - Return value: New reference. Part of the Stable ABI.
オブジェクト o の文字列表現を計算します。成功すると文字列表現を返し、失敗すると
NULLを返します。 Python 式repr(o)と同じです。この関数は組み込み関数repr()の処理で呼び出されます。バージョン 3.4 で変更: アクティブな例外を黙って捨てないことを保証するのに便利なように、この関数はデバッグアサーションを含むようになりました。
-
PyObject *
PyObject_ASCII(PyObject *o)¶ - Return value: New reference. Part of the Stable ABI.
PyObject_Repr()と同様、オブジェクト o の文字列表現を計算しますが、PyObject_Repr()によって返された文字列に含まれる非 ASCII 文字を、エスケープ文字\x、\u、\Uでエスケープします。この関数は Pythoh 2 のPyObject_Repr()が返す文字列と同じ文字列を生成します。ascii()によって呼び出されます。
-
PyObject *
PyObject_Str(PyObject *o)¶ - Return value: New reference. Part of the Stable ABI.
オブジェクト o の文字列表現を計算します。成功すると文字列表現を返し、失敗すると
NULLを返します。 Python 式str(o)と同じです。この関数は組み込み関数str()や、print()関数の処理で呼び出されます。バージョン 3.4 で変更: アクティブな例外を黙って捨てないことを保証するのに便利なように、この関数はデバッグアサーションを含むようになりました。
-
PyObject *
PyObject_Bytes(PyObject *o)¶ - Return value: New reference. Part of the Stable ABI.
オブジェクト o のバイト列表現を計算します。失敗すると
NULLを返し、成功すると bytes オブジェクトを返します。 o が整数でないときの、 Python 式bytes(o)と同じです。bytes(o)と違って、 o が整数のときには、ゼロで初期化された bytes オブジェクトを返すのではなく TypeError が送出されます。
-
int
PyObject_IsSubclass(PyObject *derived, PyObject *cls)¶ - Part of the Stable ABI.
クラス derived がクラス cls と同一であるか、そこから派生したクラスである場合は
1を返し、そうでない場合は0を返します。 エラーが起きた場合は-1を返します。cls がタプルの場合、 cls の全ての要素に対してチェックします。 少なくとも1つのチェックで
1が返ったとき、結果は1となり、それ以外のとき0になります。cls に
__subclasscheck__()メソッドがある場合は、子クラスの状態が PEP 3119 にある通りかどうかを判定するために呼ばれます。 そうでないとき derived が cls の子クラスになるのは、直接的あるいは間接的な子クラスである場合、つまりcls.__mro__に含まれる場合です。通常は、クラスオブジェクト、つまり
typeのインスタンスやそこから派生したクラスだけがクラスと見なされます。 しかし、オブジェクトに属性__bases__(これは基底クラスのタプルでなければならない) を持たせることで上書きできます。
-
int
PyObject_IsInstance(PyObject *inst, PyObject *cls)¶ - Part of the Stable ABI.
inst がクラス cls もしくは cls の子クラスのインスタンスである場合に
1を返し、そうでない場合に0を返します。 エラーが起きると-1を返し例外を設定します。cls がタプルの場合、 cls の全ての要素に対してチェックします。 少なくとも1つのチェックで
1が返ったとき、結果は1となり、それ以外のとき0になります。cls に
__instancecheck__()メソッドがある場合は、子クラスの状態が PEP 3119 にある通りかどうかを判定するために呼ばれます。 そうでないとき inst が cls のインスタンスになるのは、そのクラスが cls の子クラスである場合です。インスタンス inst に属性
__class__を持たせることで、そのクラスと見なされるものを上書きできます。オブジェクト cls とその基底クラスがクラスと見なされる場合、属性
__bases__(これは基底クラスのタプルでなければならない) を持たせることで上書きできます。
-
Py_hash_t
PyObject_Hash(PyObject *o)¶ - Part of the Stable ABI.
オブジェクト o のハッシュ値を計算して返します。失敗すると
-1を返します。 Python の式hash(o)と同じです。バージョン 3.2 で変更: 返り値の型が Py_hash_t になりました。この型は、
Py_ssize_tと同じサイズをもつ符号付き整数です。
-
Py_hash_t
PyObject_HashNotImplemented(PyObject *o)¶ - Part of the Stable ABI.
Set a
TypeErrorindicating thattype(o)is not hashable and return-1. This function receives special treatment when stored in atp_hashslot, allowing a type to explicitly indicate to the interpreter that it is not hashable.
-
int
PyObject_IsTrue(PyObject *o)¶ - Part of the Stable ABI.
o が真を表すとみなせる場合には
1を、そうでないときには0を返します。 Python の式not not oと同じです。失敗すると-1を返します。
-
int
PyObject_Not(PyObject *o)¶ - Part of the Stable ABI.
o が真を表すとみなせる場合には
0を、そうでないときには1を返します。 Python の式not oと同じです。失敗すると-1を返します。
-
PyObject *
PyObject_Type(PyObject *o)¶ - Return value: New reference. Part of the Stable ABI.
When o is non-
NULL, returns a type object corresponding to the object type of object o. On failure, raisesSystemErrorand returnsNULL. This is equivalent to the Python expressiontype(o). This function creates a new strong reference to the return value. There's really no reason to use this function instead of thePy_TYPE()function, which returns a pointer of typePyTypeObject*, except when a new strong reference is needed.
-
int
PyObject_TypeCheck(PyObject *o, PyTypeObject *type)¶ Return non-zero if the object o is of type type or a subtype of type, and
0otherwise. Both parameters must be non-NULL.
-
Py_ssize_t
PyObject_Size(PyObject *o)¶ -
Py_ssize_t
PyObject_Length(PyObject *o)¶ - Part of the Stable ABI.
o の長さを返します。ただしオブジェクト o がシーケンス型プロトコルとマップ型プロトコルの両方を提供している場合、シーケンスとしての長さを返します。エラーが生じると
-1を返します。 Python の式len(o)と同じです。
-
Py_ssize_t
PyObject_LengthHint(PyObject *o, Py_ssize_t defaultvalue)¶ オブジェクト o の概算の長さを返します。 最初に実際の長さを、次に
__length_hint__()を使って概算の長さを、そして最後にデフォルトの値を返そうとします。 この関数は Python の式operator.length_hint(o, defaultvalue)と同じです。バージョン 3.4 で追加.
-
PyObject *
PyObject_GetItem(PyObject *o, PyObject *key)¶ - Return value: New reference. Part of the Stable ABI.
オブジェクト key に対応する o の要素を返します。失敗すると
NULLを返します。Python の式o[key]と同じです。
-
int
PyObject_SetItem(PyObject *o, PyObject *key, PyObject *v)¶ - Part of the Stable ABI.
オブジェクト key を値 v に対応付けます。 失敗すると、例外を送出し
-1を返します。成功すると0を返します。 これは Python の文o[key] = vと同等です。 この関数は v への参照を 盗み取りません 。
-
int
PyObject_DelItem(PyObject *o, PyObject *key)¶ - Part of the Stable ABI.
オブジェクト o から key に関する対応付けを削除します。失敗すると
-1を返します。Python の文del o[key]と同じです。
-
PyObject *
PyObject_Dir(PyObject *o)¶ - Return value: New reference. Part of the Stable ABI.
この関数は Python の式
dir(o)と同じで、オブジェクトの変数名に割り当てている文字列からなるリスト (空の場合もあります) を返します。エラーの場合にはNULLを返します。引数をNULLにすると、Python におけるdir()と同様に、現在のローカルな名前を返します; この場合、アクティブな実行フレームがなければNULLを返しますが、PyErr_Occurred()は偽を返します。
-
PyObject *
PyObject_GetIter(PyObject *o)¶ - Return value: New reference. Part of the Stable ABI.
Python の式
iter(o)と同じです。引数にとったオブジェクトに対する新たなイテレータか、オブジェクトがすでにイテレータの場合にはオブジェクト自身を返します。オブジェクトが反復処理不可能であった場合にはTypeErrorを送出してNULLを返します。
-
PyObject *
PyObject_GetAIter(PyObject *o)¶ - Return value: New reference. Part of the Stable ABI since version 3.10.
This is the equivalent to the Python expression
aiter(o). Takes anAsyncIterableobject and returns anAsyncIteratorfor it. This is typically a new iterator but if the argument is anAsyncIterator, this returns itself. RaisesTypeErrorand returnsNULLif the object cannot be iterated.バージョン 3.10 で追加.