Giao thức số¶
-
int PyNumber_Check(PyObject *o)¶
- Một phần của ABI ổn định.
Trả về
1nếu đối tượng o cung cấp giao thức số và ngược lại là false. Chức năng này luôn thành công.Thay đổi trong phiên bản 3.8: Trả về
1nếu o là số nguyên chỉ mục.
-
PyObject *PyNumber_Add(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả của việc thêm o1 và o2 hoặc
NULLkhi không thành công. Điều này tương đương với biểu thức Pythono1 + o2.
-
PyObject *PyNumber_Subtract(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả trừ o2 từ o1 hoặc
NULLkhi thất bại. Điều này tương đương với biểu thức Pythono1 - o2.
-
PyObject *PyNumber_Multiply(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả của phép nhân o1 và o2 hoặc
NULLkhi nhân không thành công. Điều này tương đương với biểu thức Pythono1 * o2.
-
PyObject *PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định kể từ phiên bản 3.7.
Trả về kết quả của phép nhân ma trận trên o1 và o2 hoặc
NULLkhi thất bại. Điều này tương đương với biểu thức Pythono1 @ o2.Added in version 3.5.
-
PyObject *PyNumber_FloorDivide(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về sàn của o1 chia cho o2 hoặc
NULLnếu thất bại. Điều này tương đương với biểu thức Pythono1 // o2.
-
PyObject *PyNumber_TrueDivide(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về giá trị gần đúng hợp lý cho giá trị toán học của o1 chia cho o2 hoặc
NULLkhi thất bại. Giá trị trả về là "gần đúng" vì các số dấu phẩy động nhị phân là gần đúng; không thể biểu diễn tất cả các số thực trong cơ số hai. Hàm này có thể trả về giá trị dấu phẩy động khi truyền hai số nguyên. Điều này tương đương với biểu thức Pythono1 / o2.
-
PyObject *PyNumber_Remainder(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về phần còn lại của phép chia o1 cho o2 hoặc
NULLkhi chia không thành công. Điều này tương đương với biểu thức Pythono1 % o2.
-
PyObject *PyNumber_Divmod(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Xem chức năng tích hợp
divmod(). Trả vềNULLkhi thất bại. Điều này tương đương với biểu thức Pythondivmod(o1, o2).
-
PyObject *PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Xem chức năng tích hợp
pow(). Trả vềNULLkhi thất bại. Điều này tương đương với biểu thứcpow(o1, o2, o3)trong Python, trong đó o3 là tùy chọn. Nếu o3 bị bỏ qua, hãy chuyểnPy_Nonevào vị trí của nó (chuyểnNULLcho o3 sẽ gây ra truy cập bộ nhớ bất hợp pháp).
-
PyObject *PyNumber_Negative(PyObject *o)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về giá trị phủ định của o nếu thành công hoặc
NULLnếu thất bại. Điều này tương đương với biểu thức Python-o.
-
PyObject *PyNumber_Positive(PyObject *o)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về o nếu thành công hoặc
NULLnếu thất bại. Điều này tương đương với biểu thức Python+o.
-
PyObject *PyNumber_Absolute(PyObject *o)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về giá trị tuyệt đối của o hoặc
NULLkhi thất bại. Điều này tương đương với biểu thức Pythonabs(o).
-
PyObject *PyNumber_Invert(PyObject *o)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về giá trị phủ định theo bit của o khi thành công hoặc
NULLkhi thất bại. Điều này tương đương với biểu thức Python~o.
-
PyObject *PyNumber_Lshift(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả dịch chuyển trái o1 theo o2 nếu thành công hoặc
NULLnếu thất bại. Điều này tương đương với biểu thức Pythono1 << o2.
-
PyObject *PyNumber_Rshift(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả của việc dịch chuyển sang phải o1 theo o2 nếu thành công hoặc
NULLnếu thất bại. Điều này tương đương với biểu thức Pythono1 >> o2.
-
PyObject *PyNumber_And(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về "bitwise và" của o1 và o2 nếu thành công và
NULLnếu thất bại. Điều này tương đương với biểu thức Pythono1 & o2.
-
PyObject *PyNumber_Xor(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về "độc quyền bit hoặc" của o1 bởi o2 khi thành công hoặc
NULLkhi thất bại. Điều này tương đương với biểu thức Pythono1 ^ o2.
-
PyObject *PyNumber_Or(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về "bitwise hoặc" của o1 và o2 nếu thành công hoặc
NULLnếu thất bại. Điều này tương đương với biểu thức Pythono1 | o2.
-
PyObject *PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả của việc thêm o1 và o2 hoặc
NULLkhi không thành công. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 += o2.
-
PyObject *PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả trừ o2 từ o1 hoặc
NULLkhi thất bại. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 -= o2.
-
PyObject *PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả của phép nhân o1 và o2 hoặc
NULLkhi nhân không thành công. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 *= o2.
-
PyObject *PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định kể từ phiên bản 3.7.
Trả về kết quả của phép nhân ma trận trên o1 và o2 hoặc
NULLkhi thất bại. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 @= o2.Added in version 3.5.
-
PyObject *PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về tầng toán học của việc chia o1 cho o2 hoặc
NULLkhi chia không thành công. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 //= o2.
-
PyObject *PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về giá trị gần đúng hợp lý cho giá trị toán học của o1 chia cho o2 hoặc
NULLkhi thất bại. Giá trị trả về là "gần đúng" vì các số dấu phẩy động nhị phân là gần đúng; không thể biểu diễn tất cả các số thực trong cơ số hai. Hàm này có thể trả về giá trị dấu phẩy động khi truyền hai số nguyên. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 /= o2.
-
PyObject *PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về phần còn lại của phép chia o1 cho o2 hoặc
NULLkhi chia không thành công. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 %= o2.
-
PyObject *PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Xem chức năng tích hợp
pow(). Trả vềNULLkhi thất bại. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 **= o2khi o3 là :c:data:Py_None hoặc một biến thể tại chỗ củapow(o1, o2, o3)nếu không. Nếu o3 bị bỏ qua, hãy chuyểnPy_Nonevào vị trí của nó (chuyểnNULLcho o3 sẽ gây ra truy cập bộ nhớ bất hợp pháp).
-
PyObject *PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả dịch chuyển trái o1 theo o2 nếu thành công hoặc
NULLnếu thất bại. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 <<= o2.
-
PyObject *PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về kết quả của việc dịch chuyển sang phải o1 theo o2 nếu thành công hoặc
NULLnếu thất bại. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 >>= o2.
-
PyObject *PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về "bitwise và" của o1 và o2 nếu thành công và
NULLnếu thất bại. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 &= o2.
-
PyObject *PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về "độc quyền bit hoặc" của o1 bởi o2 khi thành công hoặc
NULLkhi thất bại. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 ^= o2.
-
PyObject *PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về "bitwise hoặc" của o1 và o2 nếu thành công hoặc
NULLnếu thất bại. Thao tác được thực hiện in-place khi o1 hỗ trợ nó. Điều này tương đương với câu lệnh Pythono1 |= o2.
-
PyObject *PyNumber_Long(PyObject *o)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về o được chuyển đổi thành đối tượng số nguyên nếu thành công hoặc
NULLnếu thất bại. Điều này tương đương với biểu thức Pythonint(o).
-
PyObject *PyNumber_Float(PyObject *o)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về o được chuyển đổi thành đối tượng float nếu thành công hoặc
NULLnếu thất bại. Điều này tương đương với biểu thức Pythonfloat(o).
-
PyObject *PyNumber_Index(PyObject *o)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về o được chuyển đổi thành int Python khi thành công hoặc
NULLvới ngoại lệTypeErrorđược đưa ra khi thất bại.Thay đổi trong phiên bản 3.10: Kết quả luôn có loại
intchính xác. Trước đây, kết quả có thể là một phiên bản của lớp con củaint.
-
PyObject *PyNumber_ToBase(PyObject *n, int base)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về số nguyên n được chuyển đổi thành base cơ sở dưới dạng chuỗi. Đối số base phải là một trong 2, 8, 10 hoặc 16. Đối với cơ sở 2, 8 hoặc 16, chuỗi trả về có tiền tố là dấu cơ sở lần lượt là
'0b','0o'hoặc'0x'. Nếu n không phải là int Python, trước tiên nó sẽ được chuyển đổi bằngPyNumber_Index().
-
Py_ssize_t PyNumber_AsSsize_t(PyObject *o, PyObject *exc)¶
- Một phần của ABI ổn định.
Trả về o được chuyển đổi thành giá trị
Py_ssize_tnếu o có thể được hiểu là số nguyên. Nếu cuộc gọi không thành công, một ngoại lệ sẽ xuất hiện và-1được trả về.Nếu o có thể được chuyển đổi thành Python int nhưng nỗ lực chuyển đổi thành giá trị
Py_ssize_tsẽ tạo raOverflowError, thì đối số exc là loại ngoại lệ sẽ được nâng lên (thường làIndexErrorhoặcOverflowError). Nếu exc làNULLthì ngoại lệ sẽ bị xóa và giá trị được cắt bớt thànhPY_SSIZE_T_MINcho số nguyên âm hoặcPY_SSIZE_T_MAXcho số nguyên dương.
-
int PyIndex_Check(PyObject *o)¶
- Một phần của ABI ổn định kể từ phiên bản 3.8.
Trả về
1nếu o là số nguyên chỉ mục (có vị trínb_indexcủa cấu trúctp_as_numberđược điền vào) và0nếu không. Chức năng này luôn thành công.