Задать вопрос
xenon
@xenon
Too drunk to fsck

Как правильно узнавать типы данных (из внешних пакетов) для объявления своих функций?

По-хорошему принято указывать типы для всех аргументов функций.
Но вот, допустим, есть у нас скрипт, который работает с SQLAlchemy с банальным кодом вроде:

engine = create_engine(args.db)

Но если дальше я передаю engine в функцию - какой тип мне указать для него? Для всех базовых типов, для своих классов - все понятно. Но как узнать это для стороннего пакета? (вопрос не именно про SQLAlchemy, а для общего случая)

Если я печатаю type(engine) то я узнаю: sqlalchemy.engine.base.Engine
ChatGPT советует - sqlalchemy.engine.Engine
хелп в VSCode говорит - "Create a new _engine.Engine instance."
при этом часто ведь возвращаемый тип может быть разным (например, можно допустить что в альтернативном пакете для mysql и для postgresql сами типы могут быть разные, но от общего предка). То есть, я не могу использовать то, что мне `type()` выдал.

Как при работе с незнакомым пакетом правильно определить, какой тип использовать? Есть какой-то единый прямой каноничный способ?
  • Вопрос задан
  • 166 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
Lord_of_Rings
@Lord_of_Rings Куратор тега Python
Northern Strider
Во-первых, зачем париться с типами
Во-вторых, я всегда указываю (когда указываю) тот тип, который возвращается (sqlalchemy.engine.Engine) или тот, от которого наследуется.
В-третьих, ни о каких каноничных стандартах, кроме PEP, я не слышал
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы