21.12.2022 Views

python_para_desenvolvedores_2ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Integração com outras linguagens 317

Integração com outras linguagens

Existe hoje muito código legado desenvolvido em diversas linguagens que

pode ser aproveitado pelo Python, através de várias formas de integração.

Uma forma genérica de fazer isso é gerar uma biblioteca compartilhada

(shared library) através do compilador da outra linguagem e fazer chamadas a

funções que estão definidas na biblioteca.

Como a implementação original do Python é usando Linguagem C, é possível

integrar Python e C nos dois sentidos:

▪ Python -> C (Python faz chamadas a um módulo compilado em C).

▪ C -> Python (C evoca o interpretador Python em modo embedded).

Também é possível integrar o Python com Fortran usando o utilitário f2py,

que faz parte do projeto NumPy.

Bibliotecas compartilhadas

A partir da versão 2.5, o Python incorporou o módulo ctypes, que implementa

tipos compatíveis com os tipos usados pela linguagem C e permite evocar

funções de bibliotecas compartilhadas.

O módulo provê várias formas de evocar funções. Funções que seguem a

convenção de chamada stdcall, como a API do Windows, podem ser

acessadas através da classe windll. Dynamic-link library (DLL) é a

implementação de bibliotecas compartilhadas que são usadas no Windows.

Exemplo com windll:

# -*- coding: latin1 -*-

import ctypes

# Evocando a caixa de mensagens do Windows

# Os argumentos são: janela pai, mensagem,

# título da janela e o tipo da janela.

# A função retorna um inteiro, que

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!