@KitCat12

Как правильно сделать подсказки для IDE?

Есть такой кусок кода
async def SummonerByName(self, region, summonerName):

        response = await self.fetch(
            await self.summoner_v4.SummonerByName(
                region=region,
                summonerName=summonerName,
            )
        )

        class data:
            id = response['id']
            accountId = response['accountId']
            puuid = response['puuid']
            name = response['name']
            profileIconId = response['profileIconId']
            revisionDate = response['revisionDate']
            summonerLevel = response['summonerLevel']

        return data

Выполняется запрос к API и приходит ответ в формате json
Я хочу чтобы в среде выводились вот такие подсказки
608c012e2f22e821583398.png

Собственно говоря они и выводятся, но правильно ли я это делаю?
  • Вопрос задан
  • 132 просмотра
Решения вопроса 2
LazyTalent
@LazyTalent
Data Engineer, Freelancer
1. Создаешь отдельно класс Data (невнутри функции)
2. Делаешь так, чтобы функция summoner_v4.SummonerByName возвращала экземпляр класса Data
Ответ написан
Модель правильнее держать вне функции, и создавать экземпляр класса
ещё лучше посмотреть в pydantic или dataclass_json, так как если появятся сложные вложенные типы, то ручками их разбирать то еще удовольствие

from dataclasses import dataclass


@dataclass
class Summoner:
    id: str = ''
    accountId: str = ''
    puuid: str = ''
    name: str = ''
    profileIconId: str = ''
    revisionDate: str = ''
    summonerLevel: str = ''


async def SummonerByName(self, region, summonerName):
    response = await self.fetch(
        await self.summoner_v4.SummonerByName(
            region=region,
            summonerName=summonerName,
        )
    )

    return Summoner(**response)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект