Najdôležitejšie novinky v Python 3.7:
Nový UTF-8 režim
Kódovanie napr. textu, rôznych súborov, vstupov či výstupov je vždy veľkou vedou. Python 3.7 prichádza so šikovným režimom UTF-8, ktorý ignoruje lokálne nastavené kódovanie a kódovanie prebieha len v UTF-8. V POSIX lokalizácii má predvoľbu nastavenú na bezproblémové použitie, avšak v ostatných lokalizáciách je režim zakázaný. No nemusíte zúfať, je možné užívateľsky povoliť režim UTF-8, ale len na vlastné riziko.
Data classes
S verziou Python 3.7 prichádzajú data classes, ktoré nám uľahčia tvorbu tried. Základom novinky je dekorátor triedy dataclass()
, ktorý používa anotácie premenných a automatický generuje metódy __init__
, __repr__
a __eq__
.
Štandardne definujeme triedu napr. takto:
class Vec: def __init__(self, vyska, dlzka, hlbka): self.vyska = vyska self.dlzka = dlzka self.hlbka = hlbka
S dekorátorom tried dataclass()
prepíšeme na takýto tvár:
@dataclass class Vec: vyska: int sirka: int hlbka: int
Ako vidíte, došlo k automatizácii a už nemusíme toľko písať kódu pri tvorbe tried so štruktúrovanými údajmi.
Intuitívnejšie vyvolanie ladenia s pomocou breakpoint()
Ak chcete vyvolať ladenie pred Python 3.7, musíte importovať knižnicu pdb
a volať funkciu pdb.set_trace()
. No v novej verzii vám stačí zavolať breakpoint()
.
Viac podrobností o novej verzii sa dozviete v online dokumentácii.