amarao (amarao_san) wrote,
amarao
amarao_san

dataclass

Насколько wtf'ным звучит использование @dataclass для не-датакласса с целью экономии на __init__'е?

Грубо говоря, есть класс, в котором инит - это тупое перекладывание гигантского списка аргументов __init__'а в self. Это звучит как dataclass.

Но у этого же класса есть метод run(), который что-то делает. Это звучит как wtf для dataclass.

Или нет?

Вот пример такого класса: https://github.com/serverscom/serverscom-ansible/blob/1d387a1797e24705b5277e5ff47b668dfab75068/ansible_collections/serverscom/sc_api/plugins/module_utils/modules.py#L283

(там есть чуть-чуть логики, но она прекрасно в __post_init__ уезжает, или даже прямо в run).

UPD: всё хорошее быстро заканчивается.
ansible 1.py:1:0: E0001: Cannot import 'dataclasses' due to syntax error 'invalid syntax (, line 996)' (syntax-error)
pylint /usr/lib/python3.8/dataclasses.py
************* Module dataclasses
/usr/lib/python3.8/dataclasses.py:996:0: E0001: invalid syntax (, line 996) (syntax-error)

В ansible 2.10 уже всё хорошо, но я не могу писать под ansible 2.10+, потому что 2.9 с нами надолго. И я не буду ради dataclass отказываться от ansible-test.
Tags: python
Subscribe

  • Книга высшей ксенофобии

    В рамках литературной фантазии: В книге все возможные формы фобий и наговоров оказываются правдой. Начиная с ведьм, которые наводят порчу, портят…

  • Бизнес-модель: можно грабить корованы

    Вот все смеются, а я предложу такую модель бизнеса: Команда из художника(-ов), сценариста, копирайтера, программистов и т.д. делает игру по вкусу…

  • Концепция пазла

    Представим себе простенький радиотрейсер. То есть штуку, которая может предсказать сигнал на входе, по сигналу на выходе и принципиальной…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 9 comments