Làm thế nào để bạn tính toán byte trong python?

Trả về true nếu đối tượng o là một đối tượng byte hoặc một thể hiện của một kiểu con của kiểu byte. Chức năng này luôn thành công

int PyBytes_CheckExact[ *o]

Trả về true nếu đối tượng o là một đối tượng byte, nhưng không phải là một thể hiện của một kiểu con của kiểu byte. Chức năng này luôn thành công

*PyBytes_FromString[const char *v]
Giá trị trả về. Tài liệu tham khảo mới. một phần của

Trả về một đối tượng byte mới với một bản sao của chuỗi v làm giá trị khi thành công và NULL khi thất bại. Tham số v không được là NULL;

*PyBytes_FromStringAndSize[const char *v, len]
Giá trị trả về. Tài liệu tham khảo mới. một phần của

Trả về một đối tượng byte mới với một bản sao của chuỗi v làm giá trị và độ dài khi thành công và NULL khi thất bại. Nếu v là NULL, nội dung của đối tượng bytes chưa được khởi tạo

*PyBytes_FromFormat[const char *format, ...]
Giá trị trả về. Tài liệu tham khảo mới. một phần của

Lấy một chuỗi định dạng kiểu C printf[] và một số lượng đối số khác nhau, tính toán kích thước của đối tượng byte Python kết quả và trả về một đối tượng byte với các giá trị được định dạng trong đó. Các đối số biến phải là loại C và phải tương ứng chính xác với các ký tự định dạng trong chuỗi định dạng. Các ký tự định dạng sau được cho phép

định dạng ký tự

Loại

Nhận xét

%%

không có

Ký tự % theo nghĩa đen

PyObject0

int

Một byte đơn, được biểu thị dưới dạng C int

PyObject1

int

Tương đương với PyObject2.

PyObject3

int không dấu

Tương đương với PyObject4.

PyObject5

Dài

Tương đương với PyObject6.

PyObject7

không dấu dài

Tương đương với PyObject8.

PyObject9

Tương đương với PyTypeObject1.

PyTypeObject2

size_t

Tương đương với PyTypeObject3.

PyTypeObject4

int

Tương đương với PyTypeObject5.

PyTypeObject6

int

Tương đương với PyTypeObject7.

PyTypeObject8

const ký tự *

Một mảng ký tự C kết thúc null

PyTypeObject9

const void*

Biểu diễn hex của con trỏ C. Hầu hết tương đương với bytes0 ngoại trừ việc nó được đảm bảo bắt đầu bằng bytes1 theo nghĩa đen bất kể sản lượng của bytes2 của nền tảng là gì

Một ký tự định dạng không được nhận dạng khiến tất cả phần còn lại của chuỗi định dạng được sao chép nguyên trạng sang đối tượng kết quả và mọi đối số bổ sung bị loại bỏ

1[,,,,,,,]

Đối với các chỉ định số nguyên [d, u, ld, lu, zd, zu, i, x]. cờ chuyển đổi 0 có hiệu lực ngay cả khi độ chính xác được cung cấp

*PyBytes_FromFormatV[const char *format, va_list vargs]
Giá trị trả về. Tài liệu tham khảo mới. một phần của

Giống hệt ngoại trừ việc nó nhận đúng hai đối số

*PyBytes_FromObject[ *o]
Giá trị trả về. Tài liệu tham khảo mới. một phần của

Trả về biểu diễn byte của đối tượng o thực hiện giao thức bộ đệm

PyBytes_Size[ *o]
một phần của

Trả về độ dài của byte trong đối tượng byte o

PyBytes_GET_SIZE[ *o]

Tương tự như , nhưng không kiểm tra lỗi

char *PyBytes_AsString[ *o]
một phần của

Trả về một con trỏ tới nội dung của o. Con trỏ đề cập đến bộ đệm bên trong của o, bao gồm bytes5 byte. Byte cuối cùng trong bộ đệm luôn là null, bất kể có byte null nào khác hay không. Dữ liệu không được sửa đổi theo bất kỳ cách nào, trừ khi đối tượng vừa được tạo bằng cách sử dụng bytes6. Nó không được thỏa thuận. Nếu o hoàn toàn không phải là đối tượng byte, trả về NULL và tăng

char *PyBytes_AS_STRING[ *string]

Tương tự như , nhưng không kiểm tra lỗi

int PyBytes_AsStringAndSize[ *obj, char **buffer, *length]
một phần của

Trả về nội dung kết thúc null của đối tượng obj thông qua bộ đệm và độ dài biến đầu ra

Nếu độ dài là NULL, thì đối tượng bytes có thể không chứa các byte rỗng được nhúng;

Bộ đệm đề cập đến bộ đệm bên trong của obj, bao gồm một byte rỗng bổ sung ở cuối [không được tính theo độ dài]. Dữ liệu không được sửa đổi theo bất kỳ cách nào, trừ khi đối tượng vừa được tạo bằng cách sử dụng bytes6. Nó không được thỏa thuận. Nếu obj hoàn toàn không phải là đối tượng byte, trả về NULL2 và tăng

Đã thay đổi trong phiên bản 3. 5. Trước đây, đã được nâng lên khi bắt gặp các byte null được nhúng trong đối tượng byte.

void PyBytes_Concat[ **bytes, *newpart]
một phần của

Tạo một đối tượng bytes mới trong *bytes chứa nội dung của phần mới được thêm vào bytes; . Tham chiếu đến giá trị cũ của byte sẽ bị đánh cắp. Nếu không thể tạo đối tượng mới, tham chiếu cũ đến byte sẽ vẫn bị loại bỏ và giá trị của *byte sẽ được đặt thành NULL;

void PyBytes_ConcatAndDel[ **bytes, *newpart]
một phần của

Tạo một đối tượng bytes mới trong *bytes chứa nội dung của phần mới được thêm vào bytes. Phiên bản này giảm số lượng tham chiếu của newpart

int _PyBytes_Resize[ **bytes, newsize]

Một cách để thay đổi kích thước đối tượng byte mặc dù nó là "bất biến". Chỉ sử dụng điều này để xây dựng một đối tượng byte hoàn toàn mới; . Sẽ có lỗi khi gọi chức năng này nếu số lần đếm ngược trên đối tượng byte đầu vào không phải là một. Truyền địa chỉ của một đối tượng byte hiện có dưới dạng một giá trị [nó có thể được ghi vào] và kích thước mới mong muốn. Khi thành công, *byte giữ đối tượng byte đã thay đổi kích thước và trả về NULL0; . Nếu quá trình phân bổ lại không thành công, đối tượng byte ban đầu tại *bytes sẽ bị hủy cấp phát, *bytes được đặt thành NULL, được đặt và NULL2 được trả về

Chủ Đề