Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Cool New Features in Python 3.5
Kevin McCarthy
November 07, 2015
Programming
1
140
Cool New Features in Python 3.5
Kevin McCarthy
November 07, 2015
Tweet
Share
More Decks by Kevin McCarthy
See All by Kevin McCarthy
kevin1024
1
36
kevin1024
0
90
kevin1024
0
72
kevin1024
0
110
kevin1024
1
86
kevin1024
2
150
Other Decks in Programming
See All in Programming
hanasuke
0
240
line_developers_tw2
0
670
manfredsteyer
PRO
0
140
bkuhlmann
2
300
tourismgeek
1
130
takahi5
1
410
mitohato14
0
110
legalforce
PRO
1
690
manfredsteyer
PRO
0
120
madai0517
1
160
prof18
0
610
kentatada
0
390
Featured
See All Featured
rmw
11
810
phodgson
87
3.9k
productmarketing
5
710
danielanewman
1
520
pedronauck
652
110k
andyhume
63
3.7k
destraynor
146
19k
rocio
155
11k
robhawkes
52
2.8k
jasonvnalue
82
8.1k
erikaheidi
14
4.3k
trishagee
24
2.5k
Transcript
Cool new features in Python 3.5
None
Unpacking >>> a,b,c = [1,2,3] >>> print(a) 1 >>> print(b)
2 >>> print(c) 3
Unpacking: LEVELED >>> a = [1,2,3] >>> b = [4,5,6]
>>> print([*a, *b]) [1,2,3,4,5,6] PEP 448
Build Dictionaries >>> defaults = {"database": "mysql"} >>> my_config =
{"database": "sqlite", "password": "cats"} PEP 448
Build Dictionaries >>> defaults.update(my_config) >>> print defaults {"database": "sqlite", "password":
"cats"} PEP 448
Build Dictionaries >>> print {**defaults, **my_config} {"database": "sqlite", "password": "cats"}
PEP 448
Call Functions with Unpacking >>> connect(**defaults, **my_config) PEP 448
math.isclose() >>> a = 1.0 >>> b = 1.00000000001 >>>
math.isclose(a,b) True >>> math.isclose(1.0, 1.1) False >>> math.isclose(1.0, 1.01, abs_tol=.1) True PEP 485
>>> import math >>> math.pow(a, 2) + math.pow(b, 2) ==
math.pow(c,2)
>>> a**2 + b**2 == c**2
import numpy as np from numpy.linalg import inv, solve #
Using dot function: S = np.dot((np.dot(H, beta) - r).T, np.dot(inv(np.dot(np.dot(H, V), H.T)), np.dot(H, beta) - r))
@ matrix multiplication operator @ >>> S = (H @
beta - r).T @ \ inv(H @ V @ H.T) @ (H @ beta - r) PEP 465
os.scandir() PEP 471
yield from (python 3.4) @asyncio.coroutine def view(request): data = yield
from db_query(request.q) more = yield from db_query(request.p) return yield from render(data, more) PEP 380
async and await async def view(request): data = await db_query(request.q)
more = await db_query(request.p) return await render(data, more) PEP 492
type annotations def hello(name: str) -> str: return "hello, {}".format(name)
PEP 484
type annotations def hello(name: str) -> str: return "hello, {}".format(name)
def greet(name): print greeting(name) PEP 484 types!
gradual typing def hello(name: str) -> str: return "hello, {}".format(name)
def greet(name): print(greeting(name)) types! no types! PEP 484
import typing from typing import List def combine(input: List[str]) ->
int: return input.join() PEP 484
much, much more! PEP 461, 479… • subprocess.run() • collections.OrderedDict
4-100 times faster • bytes % args, bytearray % args • functools.lru_cache() 10-25x faster • StopIteration handling inside generators better • A new installer for Windows
Thanks! https://docs.python.org/3/whatsnew/3.5.html