Python - Uma linguagem orientada a objetos

Este artigo apresenta uma breve introdução à linguagem Python.

[ Hits: 16.763 ]

Por: Marcos Augusto em 26/03/2013


Linguagem de Programação



Antes de realmente definirmos o que é Python, teremos que dar uma pequena explanação sobre linguagem de programação.

Linguagem de programação, é um programa onde escrevemos quais instruções o computador deve executar a partir de um código de palavras (tokens) criado pelos programadores, chamado de código fonte de um software.

A linguagem de programação traduz este código fonte para código de máquina que depois é executado pelo processador.

Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretação, que juntas podem ser chamadas de tradução.

Se a linguagem utilizada traduz todo o código fonte para depois executar ou "rodar", então podemos dizer que o programa foi compilado e que a linguagem usada é um compilador.

Normalmente, criar um código-fonte leva muito tempo, mas depois de compilado, uma nova versão do código-fonte fica armazenado em seu computador já em código de máquina, e essa nova versão pode ser executado várias vezes, o que compensa o tempo gasto na compilação, isso acontece em linguagens como C e Pascal.

Se a linguagem utilizada traduz o código fonte à medida que vai sendo executado em um processo de tradução de trechos seguidos de sua execução, então, podemos dizer que o programa foi interpretado e que a linguagem usada é um interpretador, como Python e Java. Porém, as desvantagens dos interpretadores é que são mais lentos que os compiladores.

O que é Python?

Python é uma linguagem de programação orientada a objetos criada por Guido Van Rossum no Instituto de Pesquisa Nacional para Matemática e Ciência da Computação (CWI) nos países baixos, para substituir uma outra linguagem denominada ABC, que não era muito capaz de tratar exceções e prover interface com o sistema operacional Amoeba através de scripts. Com a necessidade de melhorar essas funções, foi desenvolvido o Python.

Em 1991, foi lançada a primeira versão do Python (0.9.0). Nesta versão, foram adicionadas classes com herança, tratamentos de exceções, funções e dados como: list, dict e strc. Em 1994, foi criado o primeiro fórum de discussão sobre Python (comp.lang.python).

A versão 1.0 foi lançada em janeiro de 1994. Esta versão continha novas funcionalidades que incluíam ferramentas para programação funcional como: Lambda, Map, Filter e Reduce.

A versão 1.2 foi lançada em 1995, quase sem nenhuma novidade. Neste mesmo ano, Guido van Rossum saiu do CWI e foi trabalhar no CNRI em Reston, Estados Unidos.

Na versão 1.4, a linguagem ganhou parâmetros integrados e suporte nativo a números complexos, assim, como uma forma de encapsulamento. Depois dessa versão, Guido lançou a iniciativa "Computer Programing for Everybody" (CP4E; Programação de Computadores para Todos), o CP4E foi um projeto financiado pela DARPA que visava tornar a programação mais acessível, mas esse projeto foi desativado.

Em 2000, a equipe de desenvolvedores do Python mudou-se para a BeOpen com o intuito de formar a equipe PythonLabs. Mesmo não estando mais no CNRI, os desenvolvedores do Python lançaram a versão 1.6, como tivesse sido desenvolvida naquele local.

O único lançamento na BeOpen foi o Python 2.0, e logo após o lançamento dessa versão o grupo de desenvolvedores do Python mudaram para a Digital Creations.

Em 2001, foi fundada a Python Software Foundation (PSF), no mesmo ano foi lançada a versão 2.1 e a 2.2. Uma grande inovação na versão 2.2 foi a unificação dos tipos Python e classe em somente uma hierarquia. Isto tornou o modelo de objetos do Python consistentemente orientados a objeto. Também foi adicionado generator, inspirado em Icon.

Na versão 2.3, foi adicionado o incremento da biblioteca padrão e as escolhas sintáticas foram fortemente influenciadas por Java, como o pagote Logging.
"Em 1 de outubro de 2008 foi lançada a versão 2.6, nela foi adicionado bibliotecas para multiprocessamentos, JSON, E/S, além de uma nova forma de formatação de cadeias de caracteres.

Atualmente a linguagem é usada em diversas áreas, como servidores de aplicação e computação gráfica. Está disponível como linguagem de script em aplicações como OpenOffice, Blender e pode ser utilizada em procedimentos armazenados no sistema gerenciador de banco de dados PostgreSQL (PL/Python)."

Fonte: Python – Wikipédia, a enciclopédia livre

Python, uma linguagem de altíssimo nível

Obtido em: [Curso de Python] O que é Python

Existem linguagens de baixo, médio, alto nível e altíssimo nível:
  • Baixo nível :: São linguagens que possuem apenas instruções de máquinas como: Assembler.
  • Médio nível :: São linguagens intermediárias que possuem instruções mais avançadas, porém, também possuem instruções em linguagem de máquinas, como C.
  • Alto nível :: São linguagens que possuem abstração da realidade e capacidade de modelamento (Orientação a Objeto) e costumam exigir pouco do programador, como Java.
  • Altíssimo nível :: Linguagens de altíssimo nível é uma definição nova. Elas basicamente são linguagens de alto nível "melhoradas", como Python.

Vantagens e desvantagens de quem usa Python

Python é uma linguagem muito simples. Tanto para usar quanto para ler. Ela provê funcionalidades muito semelhantes às do C++ (em relação à orientação a objetos e ponteiros), porém, de forma mais simples e intuitiva. Ler o código em Python é como ler um texto em inglês.

Python é um software livre, isto significa que você pode distribuir cópias, ter acesso ao código fonte, alterar, modificar, redistribuir e utilizar partes dele em outros programas. Por esse motivo o Python está sendo constantemente sendo aperfeiçoado pelas comunidades.

Python é portável para diversas arquiteturas, isto significa que seu programa escrito em GNU/Linux, pode facilmente funcionar em:
  • Windows;
  • FreeBSD;
  • Macintosh;
  • Solaris;
  • OS/2;
  • Amiga;
  • AROS;
  • AS/400;
  • BeOS;
  • OS/390;
  • z/OS;
  • Palm OS;
  • QNX;
  • VMS;
  • Psion;
  • Acorn;
  • RISC OS;
  • VxWorks;
  • PlayStation;
  • Sharp Zaurus;
  • PocketPC;
  • Symbian.

Linguagem interpretada :: Pode ser interpretado o código de um programa Python (é lido e executado pelo interpretador Python), sem necessitar de Compilação.

Orientação a objetos :: Python suporta muito a programação orientada a objetos. Python tem uma maneira poderosa porém simples de implementar a orientação a objetos, especialmente quando comparada à grandes linguagens, como C++ ou Java.

Extensível :: Se você precisa que um pedaço do seu código funcione bem mais rápido, ou não quer que determinada parte do seu algoritmo seja código livre, você pode codificar essa parte em Cou C++, e usá-la em seu programa em Python.

Embutível :: Você pode embutir Python em seus programas C/C++ para oferecer características de scripting aos usuários de seu programa.

Várias bibliotecas :: A biblioteca padrão do Python é enorme. As bibliotecas podem ajudar você a fazer várias coisas como trabalhar com expressões regulares, banco de dados, navegadores, CGI (interfaces gráficas), Tk, gerar documentação, threading, etc. Além da biblioteca padrão, existem várias outras bibliotecas de alto nível como wxPython, Twisted, Python Imaging library e muitas outras.

Variáveis e identificadores

Obtido em: Python/Conceitos básicos/Variáveis e identificadores « wikibooks.org

Identificadores/variáveis Função:
  • and - E.
  • assert - Forçar um tipo para a variável.
  • break - Parar.
  • class - Definição da classe.
  • continue - Continuar.
  • def - Definição de função.
  • del - Deleção de objeto.
  • elif - Não-se.
  • else - Senão.
  • except - Exceção.
  • exec - Executar função.
  • finally - Finalizar função.
  • for - Definição de laço para.
  • from - Importar uma variável dentro de um módulo.
  • global - Definição de variável global.
  • if - Definição de laço se.
  • import - Importação de módulos externos.
  • in - Em.
  • is - E.
  • lambda - Funções recursivas.
  • not - Não.
  • or - Ou.
  • pass - Passar para outra função sem executá-la.
  • print - Imprimir na tela.
  • raise - Laço try.
  • return - Retornar objeto.
  • try - Definição de laço tente.
  • while - Definição de laço enquanto.

Conclusão

Após realizar este artigo, percebo que a linguagem de programação na qual foi abordada, teve um desenvolvimento muito grande ao longo de sua história, com muitos altos e poucos baixos, mas enfim, com a pesquisa percebi que Python é uma linguagem quase perfeita e com o passar dos anos, vai começar a tomar o lugar das outras, como C++ e Java.

Referências bibliográficas
Por Marcos Augusto de Souza Pinto (Marcos_youngman[at]hotmail.com)
Fundação Centro de Análise, pesquisa e inovação tecnológica - Fucapi.

Página anterior    

Páginas do artigo
   1. Uma linguagem orientada a objetos
   2. Linguagem de Programação
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Monitorando produtos no ML com Python 3 via BeautifulSoup

Como criar um keylogger em Python

Sockets em Python

RapidScan - Multi-Tool WEB Vulnerability Scanner

Reconhecimento de placas de veículos com OpenALPR

  
Comentários
[1] Comentário enviado por porongo51 em 26/03/2013 - 11:55h

Muito bom seu artigo, parabéns!

[2] Comentário enviado por gedarius em 26/03/2013 - 15:03h

bom artigo!!!

[3] Comentário enviado por cruzeirense em 26/03/2013 - 17:54h

Muito bom artigo.
Acredito que não tenha sido coincidência que o artigo anterior tratava de python para android.
Sempre lembrando que "melhor" e "mais fácil" depende muito do uso e é algo muito subjetivo.

[4] Comentário enviado por IMarcos em 27/03/2013 - 11:42h

Concordo com vc cruzeirense, eu pequei nessas duas palavras.

[5] Comentário enviado por removido em 28/03/2013 - 18:33h

Bom!

Tem uma implementação maluca que fizeram de Python em Java e que deram o nome de Jython.

E que nunca mais ouvi falarem. Parece que fizeram isso com Ruby também. ><

Servia prá rodar programas em Python com total compatibilidade.

A vantagem era a expansividade da linguagem, criando módulos em Java que ampliavam o poder do Python.

Inclusive uma interação com o próprio Java.

[6] Comentário enviado por Teixeira em 28/03/2013 - 19:20h

Faltou apenas mencionar (e isso não é culpa do autor) a linguagem de baixíssimo nivel, que é a Linguagem de Máquina (LM), que fica situada ainda abaixo do Assembly.

Hoje em dia praticamente não se programa nada em LM, mas no início era a única linguagem de programação existente, usada praticamente apenas por engenheiros.

Quando concluí o curso de Assembly L/TC/AE e fui trabalhar, verifiquei com grande pesar que precisava chamar o técnico credenciado pelo fabricante (pagando por hora) para que ele liberasse o firmware da máquina para que pudesse correr o programa assembler, e em seguida bloqueá-lo novamente.
isso ficava caro - muito caro - e eu tive de passar a programar em LM, por questões de economia, embora perdesse parte da produtividade já bastante sacfrificada pelo uso de uma linguagem de baixo nivel.
A principal vantagem de usar linguagens de baixo e baixissimo nivel é que se tem uma velocidade de execução incomparável, e controle total sobre a máquina.
Mas para produzir sofwtare, o processo é muito penoso.

Outra coisa, o nome correto da linguagem é "Assembly" e não "Assembler".
"Assembler" portanto é o programa assemblador (!!!), e não a linguagem.
Sendo que existem várias linguagens chamadas "LM" e tantas outras chamadas "Assembly", pois cada uma delas é feita para um processador específico.
Nos antigos Apple era o Motorola 6502, nos TRS Radio Shack e compatíveis era o Zilog Z-80, e assim por diante.
Muitos comandos do antigo Z-80 ainda funcionam ou guardam similaridade no padrão IBM PC, pois os processadores da Intel a partir do 8086 são ainda compatíveis com o Z-80 de onde foram originários (embora o banco de registradores daquele processador primitivo fosse maior).
O curioso é que o Z-80 foi um aprimoramento do 8080 da intel, executado por ex-funcionários daquela empresa e que fundaram a Zilog.
A principal diferença entre o Assembly e a LM é que, enquanto LM lida com números em notação binária ("zeros" e "uns") e em alguns casos com sua representação em hexadecimal, o Assembly nos permite a extrema "colher de chá" de permitir o uso de hexadecimais e mnemônicos para os labels que desejarmos implementar.

A felicidade é feita de coisas simples: Para alguns indianos, ser feliz é tocar uma vaca para dentro de casa, pois ela é um animal sagrado e a sua presença certamente trará sorte, não importando que eventualmente tenha quebrado tudo o que ainda havia dentro daquela casa.
Para os carteiros, é tirar os sapatos no fim do dia, colocar os pés na janela e ver "os bichinhos" descansando...
E para um programador Assembly, a "felicidade extrema" é poder usar mnemônicos...

Agora o mais importante: Parabéns pelo artigo!

[7] Comentário enviado por removido em 28/03/2013 - 19:47h


[6] Comentário enviado por Teixeira em 28/03/2013 - 19:20h:

Faltou apenas mencionar (e isso não é culpa do autor) a linguagem de baixíssimo nivel, que é a Linguagem de Máquina (LM), que fica situada ainda abaixo do Assembly.

(...)

Agora o mais importante: Parabéns pelo artigo!


Daí eu me lembrei sobr euma história de um painel com uns plugues que deviam ser encaixados nos locais corretos.

Os plugues eram presos numa armação e todos eram colocados num painel, de uma só vez. Mais ou menos isso.

Sendo que não há software nisso, é tudo mecânico e jumpeado, isso seria programação de hardware?

[8] Comentário enviado por Teixeira em 29/03/2013 - 18:25h

Na verdade o software não deixa de existir, pois programar é antes de tudo empregar uma sequência lógica.
Isso é uma forma muito mais rústica de programação, e a meu ver continua sendo linguagem de máquina, e igualmente binária.
Esse tipo de programação feita a partir de jumpers ou de interruptores, é baseada nos estados que as portas do chip processador podem assumir ("ligado" ou "desligado").
ALém desses dois estados, também se conseguem operações booleanas (do tipo AND, NAND, XOR, OR, NOR, XNOR), e assim dá para fazer muita coisa, embora nem tudo.
Trabalhar com strings é possível, mas em alguns casos é muito extenuante.

[9] Comentário enviado por celivaldo-santos em 21/07/2014 - 19:26h

amigo, me ajude com uma dúvida minha.
sou estudante da linguagem python, aprendi o básico e queria saber qual o caminho seguir agora no estudo dessa linguagem???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts