Python · Avançado · Inglês · Técnico
ctypes
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.