Python para Devs    Evaldo Junior       (1.0 beta)     05/05/2012
Licenciamento desta apresentação             Creative Commons                    BY-NC-SA     Compartilhe - Mantenha a lic...
Evaldo Junior - InFog•   Processamento de dados - Fatec•   MBA Gestão Estratégica de TI - Unimonte•   Professor universitá...
Python
Python•   Pronuncia-se "Paiton"•   Não é "pitón"•   Não é "faiton"•   Sem ligação com cobras!•   Monty Python!
Por que Python?
Qualidade deSoftware
Qualidade deSoftware               Produtividade
Qualidade deSoftware                ProdutividadePortabilidade
Qualidade deSoftware                ProdutividadePortabilidade                  Inúmeras                  bibliotecas
Qualidade deSoftware                  ProdutividadePortabilidade                    Inúmeras                    biblioteca...
Qualidade deSoftware                           ProdutividadePortabilidade                             Inúmeras            ...
Qualidade deSoftware                                       ProdutividadePortabilidade                                     ...
Um pouco de história...•   Guido van Rossum•   1989 - 1991•   Foco em produtividade•   1994 - Funcional    o   lambda•   2...
A linguagem Python      Poderosa!
A linguagem PythonMultiparadigma                 Poderosa!
A linguagem PythonMultiparadigma          Multifuncional                 Poderosa!
A linguagem PythonMultiparadigma            Multifuncional                 Poderosa!        Multiplataforma
A linguagem PythonMultiparadigma            Multifuncional                 Poderosa!                             Fácil de ...
A linguagem PythonMultiparadigma            Multifuncional                 Poderosa...                     e Multiplatafor...
A linguagem Python•   Poderosa... E rápida!       Baterias incluídas
A linguagem Python•   Poderosa... E rápida!      WEB       Baterias incluídas
A linguagem Python•   Poderosa... E rápida!                       Desktop      WEB       Baterias incluídas
A linguagem Python•   Poderosa... E rápida!                                 Database                       Desktop      WE...
A linguagem Python•   Poderosa... E rápida!                                  Database                        Desktop      ...
A linguagem Python•   Poderosa... E rápida!                                  Database                        Desktop      ...
A linguagem Python•   Poderosa... E rápida!                                  Database                        Desktop      ...
A linguagem Python•   Poderosa... E rápida!•   Baterias incluídas         Meta classes,         decorators         Duck ty...
Talking is cheap, show me the code!
Duck Typing
Blocos sãoi[n]dentados!
A linguagem Python•   Poderosa... E rápida!•   Baterias incluídas•   Meta classes, decorators, Duck typing       Escreva r...
Feed RSS
Resultado
A linguagem Python•   Poderosa... E rápida!•   Baterias incluídas•   Meta classes, decorators, Duck typing•   Escreva rápi...
Interpretador interativo
Tipagem dinâmica, não fraca!•   Não existe declaração de tipos     Mas os tipos     existem!
exemplo...2+2=42 + 2 = 222 + 2 = TypeError
Tipagem dinâmica, não fraca!•   Não existe declaração de tipos•   Sem conversão automática de tipos4 * spamspamspamspamspam
Ótimo tratamento de erros
Parâmetros nomeados
Decorators•   Especifica uma maneira de gerir funções e    classes•   Organização•   Centralização
Decorators
Decorators
Decorators - Django
Namespaces•   Baseados em arquivos ou módulos•   Use apenas se necessário•   Ótima forma de organização e    modularização
Namespacesfun1           fun2
OOP
Herança multipla                   OOP
Classes abstratasHerança multipla                   OOP
Classes abstratasHerança multipla                                 Sem sobrecarga de métodos                   OOP
Classes abstratasHerança multipla                                    Sem sobrecarga de métodos                      OOP  N...
Classes abstratasHerança multipla                                    Sem sobrecarga de métodos                      OOP  N...
OOP!5.45.__int__()5 (parte inteira do número)
OOP: self•   Todos os métodos, de quaisquer métodos,    recebem o self•   self é uma referência do objeto instanciado.•   ...
OOP: self
Convenções para OOP•   Todos herdam de "object"•   Contrutores se chamam __new__    o   Nunca vi um construtor...•   Inici...
Visibilidades•   Não existe operador de visibilidade!•   Nada de public•   Nada de protected•   Nada de private
Visibilidades, como faz?•   public = sem prefixos•   protected = prefixo "_"•   private = prefixo "__"    o   two underlin...
Visibilidades, funciona?Um grande acordo entre cavalheiros.Coisas ruins acontecem comquem não respeita o padrão.
O que fazer com tudo isso?
Quem usa Python?Mais de um milhão de desenvolvedores!
Mais informações•   http://python.org•   http://python.org.br•   http://python.org/doc•   Learning Python - Mark Lutz•   P...
Dúvidas?
Python para devs
Python para devs
Upcoming SlideShare
Loading in …5
×

Python para devs

1,104 views
1,055 views

Published on

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

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
1,104
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
14
Comments
1
Likes
1
Embeds 0
No embeds

No notes for 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?

×