Paglabas ng Python 3.8

Ang pinaka-kagiliw-giliw na mga pagbabago:

  • Ekspresyon ng takdang-aralin:

    Pinapayagan ka ng bagong operator na := na magtalaga ng mga halaga sa mga variable sa loob ng mga expression. Halimbawa:
    kung (n := len(a)) > 10:
    print(f"Masyadong mahaba ang listahan ({n} elemento, inaasahang <= 10)")

  • Posisyon-lamang na mga argumento:

    Maaari mo na ngayong tukuyin kung aling mga parameter ng function ang maaaring ipasa sa pinangalanang argument syntax at alin ang hindi. Halimbawa:
    def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

    f(10, 20, 30, d=40, e=50, f=60) # OK
    f(10, b=20, c=30, d=40, e=50, f=60) # error, hindi maaaring pinangalanang argumento ang `b`
    f(10, 20, 30, 40, 50, f=60) # error, ang `e` ay dapat na pinangalanang argumento

    Ang pagbabagong ito ay nagbibigay sa mga developer ng paraan upang protektahan ang mga user ng kanilang mga API mula sa mga pagbabago sa mga pangalan ng argument ng function.

  • Suportahan ang f-strings = para sa self-documenting expression at debugging:

    Nagdagdag ng asukal upang pasimplehin ang pag-debug/pag-log ng mga mensahe.
    n = 42
    print(f'Hello world {n=}.')
    # ay magpi-print ng "Hello world n=42."

  • Inayos ang magpatuloy na keyword sa panghuling bloke (hindi ito gumana noon).

Iba pa:

  • Maaari mong tahasan na tukuyin ang path sa bytecode cache sa halip na ang default na __pycache__.
  • Ang mga build ng Debug at Release ay gumagamit ng parehong ABI.

Pinagmulan: linux.org.ru

Magdagdag ng komento