Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cool New Features in Python 3.5

Cool New Features in Python 3.5

Avatar for Kevin McCarthy

Kevin McCarthy

November 07, 2015
Tweet

More Decks by Kevin McCarthy

Other Decks in Programming

Transcript

  1. Unpacking: LEVELED >>> a = [1,2,3] >>> b = [4,5,6]

    >>> print([*a, *b]) [1,2,3,4,5,6] PEP 448
  2. Build Dictionaries >>> defaults = {"database": "mysql"} >>> my_config =

    {"database": "sqlite", "password": "cats"} PEP 448
  3. 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
  4. 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))
  5. @ matrix multiplication operator @ >>> S = (H @

    beta - r).T @ \ inv(H @ V @ H.T) @ (H @ beta - r) PEP 465
  6. 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
  7. 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
  8. type annotations def hello(name: str) -> str: return "hello, {}".format(name)

    def greet(name): print greeting(name) PEP 484 types!
  9. gradual typing def hello(name: str) -> str: return "hello, {}".format(name)

    def greet(name): print(greeting(name)) types! no types! PEP 484
  10. 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