Пару недель назад я узнал о 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”