From 8051fc47f1f45dad430a8a65aa78078e7ba231a3 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Tue, 24 Jan 2017 19:26:58 -0200 Subject: [PATCH] added whats new in python 3.6 --- python36.html | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 python36.html diff --git a/python36.html b/python36.html new file mode 100644 index 0000000..acd6dd0 --- /dev/null +++ b/python36.html @@ -0,0 +1,228 @@ + + + + + + Python 3.6 - Novidades da Versão + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

Python 3.6

+

Novidades da versão

+
+
+
+ +
+
+ Me + +
+ +
+
+
+ +
+
+

Underscores em números

+ +
>>> 1_000_000_000 == 1000000000
+True
+ +
>>> 1_00_00_00_00_0
+ +
>>> '{:_}'.format(1000000)
+'1_000_000'
+
+
+ +
+
+

String literals

+ +
>>> name = 'Julio'
+>>> f'My name is {name}'
+My name is Julio
+ +
>>> def f():
+...     name = 'Julio'
+...     print('My name is {name}'.format(**locals()))
+
+ +
+

+all(list(print(f'{i} bottle{"s" if i != 1 else ""} of '
+f'beer on the wall, {str(i).lower()} '
+f'bottle{"s" if i != 1 else ""} of beer.\n{"Take one '
+f'down pass it around" if str(i).lower() == str(i) '
+f'else "Go to the store and buy some more"}, '
+f'{i-1 if i not in [1, "No more"] else "no more" '
+f'if i == 1 else 99} bottles of beer on the wall.\n') \
+for i in list(range(99, 0, -1))+['No more'])) \
+or ""
+                        
+
+
+ +
+
+

Type annotations

+ +

Só pra lembrar...

+ +
>>> def(name: str) -> str:
+...     return 'Hello ' + name
+ +

+ Não signfica que o CPython valida o parâmetro ou o retorno. +

+
+ +
+
>>> captain: str    # None
+
>>> values: List[int] = [1, 2, 4]
+ +

Essas informações podem ser extraídas de __annotations__ + (assim como docstrings podem ser extraídas de __doc__).

+
+
+ +
+
+

secrets

+ +

Nova biblioteca para geração de números randômicos "fortes", utilizados + para criptografia.

+ +
>>> token_hex(16)  
+'f9bf78b9a18ce6d46a0cd2b0b86df9da'
+
+
+ +
+
+

Pathlib

+ +

Representação de um caminho qualquer no sistema de arquivos.

+ +
 import pathlib
+>>> with open(pathlib.Path("README")) as f:
+...     contents = f.read()
+...
+>>> import os.path
+>>> os.path.splitext(pat)
+('some_file', '.txt')
+
+ +
+

Nova função para tornar objetos Path-like: __fspath()__

+
+
+ +
+
+

Novos "dicionários"

+ +

dict agora é mais compacto.

+

Efeito colateral: agora são ordenados em CPython, + mas não no spec da linguagem Python.

+
+ +
+
    +
  • **kwargs agora são ordenados.
  • +
  • __dict__ agora é ordenado.
  • +
+
+
+ +
+
+

Async the world!

+
+
+
+
+ + + + + + + +