ExpertiDict

Python · Avançado · Inglês · Técnico

ctypes

/si taɪps/substantivo

Módulo da biblioteca padrão que carrega bibliotecas compartilhadas (DLL, .so) e chama suas funções em C diretamente do Python, convertendo os tipos de dados.

Onde usar

Aparece ao integrar uma biblioteca nativa sem escrever uma extensão em C. Exige declarar os tipos dos argumentos e do retorno, ou os valores podem ser interpretados errado.

Em código

import ctypes

# Linux (glibc)
libc = ctypes.CDLL('libc.so.6')
libc.abs.argtypes = [ctypes.c_int]
libc.abs.restype = ctypes.c_int
print(libc.abs(-5))

Exemplos

We call the C library through ctypes.

Chamamos a biblioteca em C por meio do ctypes.

Set argtypes, or ctypes will guess the wrong types.

Defina argtypes, ou o ctypes vai adivinhar os tipos errados.

Cuidado

Erros de tipo ou de ponteiro com ctypes não geram uma exceção amigável; podem derrubar o interpretador com segmentation fault.

Veja também

Todos os termos de Python