Python para devs

1.241 visualizações

Publicada em

Palestra feita no 3º encontro do DevInSantos. Fiz uma introdução da linguagem Python para quem já desenvolve em outras linguagens.

Publicada em: Tecnologia
1 comentário
1 gostou
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
1.241
No SlideShare
0
A partir de incorporações
0
Número de incorporações
135
Ações
Compartilhamentos
0
Downloads
14
Comentários
1
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Python para devs

  1. 1. Python para Devs Evaldo Junior (1.0 beta) 05/05/2012
  2. 2. Licenciamento desta apresentação Creative Commons BY-NC-SA Compartilhe - Mantenha a licença - Não comercial
  3. 3. Evaldo Junior - InFog• Processamento de dados - Fatec• MBA Gestão Estratégica de TI - Unimonte• Professor universitário - Unimonte• Empreendedor - CaSoft• GNU/Linux - 7 anos• Desenvolvedor - 5 anos
  4. 4. Python
  5. 5. Python• Pronuncia-se "Paiton"• Não é "pitón"• Não é "faiton"• Sem ligação com cobras!• Monty Python!
  6. 6. Por que Python?
  7. 7. Qualidade deSoftware
  8. 8. Qualidade deSoftware Produtividade
  9. 9. Qualidade deSoftware ProdutividadePortabilidade
  10. 10. Qualidade deSoftware ProdutividadePortabilidade Inúmeras bibliotecas
  11. 11. Qualidade deSoftware ProdutividadePortabilidade Inúmeras bibliotecas Integração com outras linguagens
  12. 12. Qualidade deSoftware ProdutividadePortabilidade Inúmeras bibliotecas Integração com outras linguagens Livre!
  13. 13. Qualidade deSoftware ProdutividadePortabilidade Inúmeras bibliotecas Integração com outras linguagens Diversão! Livre!
  14. 14. Um pouco de história...• Guido van Rossum• 1989 - 1991• Foco em produtividade• 1994 - Funcional o lambda• 2.0 - list compreension o haskell• 3.0 - grandes mudanças
  15. 15. A linguagem Python Poderosa!
  16. 16. A linguagem PythonMultiparadigma Poderosa!
  17. 17. A linguagem PythonMultiparadigma Multifuncional Poderosa!
  18. 18. A linguagem PythonMultiparadigma Multifuncional Poderosa! Multiplataforma
  19. 19. A linguagem PythonMultiparadigma Multifuncional Poderosa! Fácil de aprender Multiplataforma
  20. 20. A linguagem PythonMultiparadigma Multifuncional Poderosa... e Multiplataforma rápida! Fácil de aprender
  21. 21. A linguagem Python• Poderosa... E rápida! Baterias incluídas
  22. 22. A linguagem Python• Poderosa... E rápida! WEB Baterias incluídas
  23. 23. A linguagem Python• Poderosa... E rápida! Desktop WEB Baterias incluídas
  24. 24. A linguagem Python• Poderosa... E rápida! Database Desktop WEB Baterias incluídas
  25. 25. A linguagem Python• Poderosa... E rápida! Database Desktop WEB Baterias incluídas Científica
  26. 26. A linguagem Python• Poderosa... E rápida! Database Desktop WEB Baterias incluídas Científica Network
  27. 27. A linguagem Python• Poderosa... E rápida! Database Desktop WEB Baterias incluídas Científica Games Network
  28. 28. A linguagem Python• Poderosa... E rápida!• Baterias incluídas Meta classes, decorators Duck typing
  29. 29. Talking is cheap, show me the code!
  30. 30. Duck Typing
  31. 31. Blocos sãoi[n]dentados!
  32. 32. A linguagem Python• Poderosa... E rápida!• Baterias incluídas• Meta classes, decorators, Duck typing Escreva rápido!
  33. 33. Feed RSS
  34. 34. Resultado
  35. 35. A linguagem Python• Poderosa... E rápida!• Baterias incluídas• Meta classes, decorators, Duck typing• Escreva rápido! Interpretador interativo!
  36. 36. Interpretador interativo
  37. 37. Tipagem dinâmica, não fraca!• Não existe declaração de tipos Mas os tipos existem!
  38. 38. exemplo...2+2=42 + 2 = 222 + 2 = TypeError
  39. 39. Tipagem dinâmica, não fraca!• Não existe declaração de tipos• Sem conversão automática de tipos4 * spamspamspamspamspam
  40. 40. Ótimo tratamento de erros
  41. 41. Parâmetros nomeados
  42. 42. Decorators• Especifica uma maneira de gerir funções e classes• Organização• Centralização
  43. 43. Decorators
  44. 44. Decorators
  45. 45. Decorators - Django
  46. 46. Namespaces• Baseados em arquivos ou módulos• Use apenas se necessário• Ótima forma de organização e modularização
  47. 47. Namespacesfun1 fun2
  48. 48. OOP
  49. 49. Herança multipla OOP
  50. 50. Classes abstratasHerança multipla OOP
  51. 51. Classes abstratasHerança multipla Sem sobrecarga de métodos OOP
  52. 52. Classes abstratasHerança multipla Sem sobrecarga de métodos OOP Não existem tipos primitivos
  53. 53. Classes abstratasHerança multipla Sem sobrecarga de métodos OOP Não existem tipos primitivos TUDO é objeto
  54. 54. OOP!5.45.__int__()5 (parte inteira do número)
  55. 55. OOP: self• Todos os métodos, de quaisquer métodos, recebem o self• self é uma referência do objeto instanciado.• self é sempre o primeiro parâmetro, e é automático.
  56. 56. OOP: self
  57. 57. Convenções para OOP• Todos herdam de "object"• Contrutores se chamam __new__ o Nunca vi um construtor...• Inicializadores de chamam __init__ o Esses sim, tem aos montes por aí o Na verdade o __init__ é o que as outras linguagens usam como "construtor"• __init__ recebe uma instância pronta, para incializar os atributos.• __new__ é usada raramente, mais para metaprogramação.
  58. 58. Visibilidades• Não existe operador de visibilidade!• Nada de public• Nada de protected• Nada de private
  59. 59. Visibilidades, como faz?• public = sem prefixos• protected = prefixo "_"• private = prefixo "__" o two underlines o two under o thunder
  60. 60. Visibilidades, funciona?Um grande acordo entre cavalheiros.Coisas ruins acontecem comquem não respeita o padrão.
  61. 61. O que fazer com tudo isso?
  62. 62. Quem usa Python?Mais de um milhão de desenvolvedores!
  63. 63. Mais informações• http://python.org• http://python.org.br• http://python.org/doc• Learning Python - Mark Lutz• Python para Desenvolvedores o Luiz Eduardo Borges
  64. 64. Dúvidas?

×