python para desenvolvedores javascript

PythOnRio - Julho - 2018

quem?

Luciano Ratamero

Python/JavaScript

lucianoratamero.github.io

@lucianoratamero

motivação

  • vim do frontend
  • js: linguagem pra web => extremamente permissiva
  • python: linguagem pra uso geral => equilíbrio

(aqui você já pode scrollar pro lado direito ;D)

sobre o que iremos falar

  • declaração de variáveis
  • closures
  • for loops
  • acesso a atributos
  • tipagem e coerção
  • arrays vs listas
  • funções anônimas vs lambda
  • protótipos, classes e heranças

declaração de variáveis

  • var
  • let e const
  • x = 4

closures

  • js => chaves
  • python => indentação
  • x = 3
    
    def print_x():
        x = 5
        print(x) # 5
    
    print(x) # 3

for loops

  • js for..of === python for..in
  • js for => for index, value in enumerate(lista)

acesso a atributos

  • variavel.atributo
  • variavel['atributo'] - KeyError
  • variavel.get('atributo', 'caso não tenha')

tipagem e coerção

  • filosofia js: permissividade
  • filosofia python: explícito é melhor que implícito
  • js: "5" + 5 // "55"
  • python: "5" + 5 # TypeError

arrays vs listas

  • js: array.map (novo array), array.forEach (mesmo array) ou for
  • python: list comprehention

funções anônimas vs lambda

  • mesma ideia, diferente contexto
  • lambda: pequenas alterações
  • recomendável: criar uma função/método auxiliar

protótipos, classes e heranças

  • js => protótipos, python => classes
  • js: nunca se sobrescreve, python: VÃO
  • js tem classe também: class Child extends Parents
  • python: class Child(Parents):
  • class Child(Mom, Dad):

perguntas?

luciano@ratamero.com

cerveja/café