7.3.2.2 メソッドおよびスロット関数 (slot function)

以下の API は Unicode オブジェクトおよび文字列を入力に取り (説明では、どちらも文字列と表記しています)、場合に応じて Unicode オブジェクトか整数を返す機能を持っています。

これらの関数は全て、例外が発生した場合には NULL または -1 を返します。

PyObject* PyUnicode_Concat(PyObject *left, PyObject *right)
戻り値: 新たな参照.
二つの文字列を結合して、新たな Unicode 文字列を生成します。

PyObject* PyUnicode_Split(PyObject *s, PyObject *sep, Py_ssize_t maxsplit)
戻り値: 新たな参照.
Unicode 文字列のリストを分割して、 Unicode 文字列からなるリスト を返します。 sepNULL の場合、全ての空白文字を使って 分割を行います。それ以外の場合、指定された文字を使って分割を 行います。最大で maxsplit 個までの分割を行います。 maxsplit が負ならば分割数に制限を設けません。 分割結果のリスト内には分割文字は含みません。

PyObject* PyUnicode_Splitlines(PyObject *s, int keepend)
戻り値: 新たな参照.
Unicode 文字列を改行文字で区切り、Unicode 文字列からなるリスト を返します。CRLF は一個の改行文字とみなします。keepend が 0 の場合、分割結果のリスト内に改行文字を含めません。

PyObject* PyUnicode_Translate(PyObject *str, PyObject *table, const char *errors)
戻り値: 新たな参照.

文字列に文字変換マップ table を適用して変換し、変換結果を Unicode オブジェクトで返します。

対応付けを行う table は、 Unicode 序数を表す整数を Unicode 序数を表す整数または None に対応付けます。 (None の場合にはその文字を削除します)

対応付けテーブルが提供する必要があるメソッドは __getitem__() インタフェースだけです; 従って、辞書や シーケンス型を使ってもうまく動作します。対応付けを行っていない (LookupError を起こすような) 文字序数に対しては、 変換は行わず、そのままコピーします。

errors は codecs で通常使われるのと同じ意味を持ちます。 errorsNULL にしてもよく、デフォルトエラー処理の 使用を意味します。

PyObject* PyUnicode_Join(PyObject *separator, PyObject *seq)
戻り値: 新たな参照.
指定した separator で文字列からなるシーケンスを連結 (join) し、 連結結果を Unicode 文字列で返します。

int PyUnicode_Tailmatch(PyObject *str, PyObject *substr, Py_ssize_t start, Py_ssize_t end, int direction)
戻り値: 新たな参照.
substr が指定された末尾条件 (direction == -1 は 前方一致、 direction ==1 は後方一致) で str[start:end] とマッチする場合に 1 を返し、 それ以外の場合には 0 を返します。 エラーが発生した時は -1 を返します。

Py_ssize_t PyUnicode_Find(PyObject *str, PyObject *substr, Py_ssize_t start, Py_ssize_t end, int direction)

str[start:end] 中にsubstr が最初に 出現する場所を返します。このとき指定された検索方向 direction (direction == 1 は順方向検索、 direction == -1 は 逆方向検索) で検索します。戻り値は最初にマッチが見つかった場所の インデクスです; 戻り値 -1 はマッチが見つからなかったことを 表し、-2 はエラーが発生して例外情報が設定されていることを 表します。

Py_ssize_t PyUnicode_Count(PyObject *str, PyObject *substr, Py_ssize_t start, Py_ssize_t end)
str[start:end]substr が重複することなく出現する回数を返します。 エラーが発生した場合には -1 を返します。

PyObject* PyUnicode_Replace(PyObject *str, PyObject *substr, PyObject *replstr, Py_ssize_t maxcount)
戻り値: 新たな参照.
str 中に出現する substr を最大で maxcountreplstr に置換し、置換結果を Unicode オブジェクトにして 返します。 maxcount == -1 にすると、全ての substr を置換します。

int PyUnicode_Compare(PyObject *left, PyObject *right)
二つの文字列を比較して、左引数が右引数より小さい場合、 左右引数が等価の場合、左引数が右引数より大きい場合、について、 それぞれ -1, 0, 1 を返します。

int PyUnicode_RichCompare(PyObject *left, PyObject *right, int op)
二つのunicode文字列を比較して、下のうちの一つを返します:

Py_EQPy_NE の比較は、引数からUnicodeへの変換が UnicodeDecodeError で失敗した時に、 UnicodeWarning を発生する可能性があることに注意してください。

op に入れられる値は、 Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, and Py_LE のどれかです。

PyObject* PyUnicode_Format(PyObject *format, PyObject *args)
戻り値: 新たな参照.
新たな文字列オブジェクトを format および args から 生成して返します; このメソッドは format % args のようなものです。引数 args はタプルでなくてはなりません。

int PyUnicode_Contains(PyObject *container, PyObject *element)
elementcontainer 内にあるか調べ、その結果に応じて 真または偽を返します。

element は単要素の Unicode 文字に型強制できなければ なりません。エラーが生じた場合には -1 を返します。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。