Skip to content

Python 3.8 – nowości

Właśnie od 14 października mamy do dyspozycji najnowszą wersję języka Python.

Wprowadza ona kilka nowości, ale ja skupię się tutaj na opisaniu trzech nowych funkcjonalności, które moim zdaniem są ważne.

Prostsze debugowanie programów dzięki nowym funkcjom f-stringów. Wprowadzone w Pythonie 3.6 są coraz popularniejszym sposobem na komunikację z użytkownikiem. Oto przykład podstawowego użycia f-stringu:

style = "formatted"
print( f"This is a {style} string" )
'This is a formatted string'

Nowość w Python 3.8 to możliwość dodania znaku „=” przy nazwie obiektu i tym samym spowodowanie wyświetlenia również jego nazwy obok wartości.

python = 3.8
print( f"{python=}" )
'python=3.8'

Przypisywanie wyrażeń do zmiennej – możliwe jest teraz wykonanie kodu, który potrafi wykonywać jednocześnie wyrażenie i porównanie, np.

Stary kod realizujący wpisywanie danych w pętli. Nawet jeśli użytkownik wpisze literę 'q’ od razu, pojawi się choć jeden raz informacja o wprowadzonej literze:

dana = ''
while dana != 'q':
    dana = input('Podaj informację.. ')
    print('Wprowadzono: ' + dana)

W nowej wersji można ten sam kod zapisać bardziej elegancko. Przy pierwszym wprowadzeniu 'q’ nie pojawi się informacja o wprowadzonej literze.

while (dana := input('Podaj informację.. ') != 'q'):
    print('Wprowadzono: ' + dana)

Wymuszenie parametrów pozycyjnych – nowy sposób zapisy definicji funkcji. Dzięki temu interpreter wie, że niektóre parametry muszą być podane na swoich pozycjach. Dla nich nie wolno używać wywołania poprzez nazwy parametrów.

def incr(x, /):
    return x + 1

incr(3.8)
4.8

incr(x=3.8)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: incr() got some positional-only arguments passed as
           keyword arguments: 'x'

Dla niektórych programistów to są ważne i potrzebne zmiany. Z punktu widzenia szkoły i nauczyciela nie są bardzo istotne, ale proponuję zawsze uważać, gdyż kod, który uruchomicie, może nagle powodować błędy lub dziwne zachowanie na różnych komputerach, jeśli macie różne wersje Pythona.

Osobiście uważam, że zmiany w f-stringach mogą być ciekawe i potrzebne w edukacji. Ale wówczas wszyscy powinni zmienić Pythona na wersję 3.8, Czego na razie nie proponuję.

Published inOpisy oprogramowaniaPython 3

Be First to Comment

Dodaj komentarz