Рубрики
Без рубрики

Dataclasses в Python приятно!

Небольшое введение в функцию Dataclasses в Python. Помечено Python, начинающим.

Пару недель назад я узнал о Dataclasses особенность в Python. Эта функция – хороший способ определить классы в Python. Это было введено в Python 3.7 , в частности PEP 557 Отказ Чтобы использовать эту функцию, убедитесь, что вы используете Python версии 3.7 или выше.

Раньше я знал о определении новых классов в Python, используя Я .__ init __ () функция. Вот пример меня, определяющий класс YouTuber Отказ

class Youtuber:
    def __init__(self, name: str, categories: list[str]):
        self.name = name
        self.categories = categories

Теперь мы можем использовать меньше кода котел для определения классов. Нет необходимости устанавливать отдельную библиотеку Python, это придет с стандартной библиотекой Python (до тех пор, пока она> 3.7).

Вот как вы можете определить это сейчас:

from dataclasses import dataclass

@dataclass
class Youtuber:
   """Class for defining youtubers."""
   name: str
   categories: list[str]

В этом примере выше я импортирую его первым Из Dataclasses Import Dataclass а затем определить это. Я создал определение класса и использовал @dataclass Аннотация, чтобы сказать Python, как он должен интерпретировать это определение класса.

Тогда я могу создать это в Python, так как я бы сделал все равно, независимо от использования @dataclass :

Youtuber("Chris Stuckmann", ["movie-reviews"])

Вот как вы можете попробовать это, используя 3 моих любимых канала YouTube:)

youtubers = []
youtubers.append(Youtuber("Chris Stuckmann", ["movie-reviews"]))
youtubers.append(Youtuber("Double Toasted", ["movie-reviews"]))
youtubers.append(Youtuber("The Fitness Marshall", ["fitness"]))

for youtuber in youtubers:
    print(f"{youtuber.name}'s categories are: {youtuber.categories}")

Давайте поставим это все вместе в файл под названием YouTubers.py И беги! Вы можете скопировать это из этого Github Gist я создал Отказ Вы должны получить этот вывод:

$ python youtubers.py  
Chris Stuckmann's categories are: ['movie-reviews']
Double Toasted's categories are: ['movie-reviews']
The Fitness Marshall's categories are: ['fitness']

Надеюсь, вам понравилась эта короткая статья! Вы можете найти меня на https://isabelcosta.github.io/

Оригинал: “https://dev.to/isabelcmdcosta/dataclasses-in-python-are-nice-1fff”