Подсказки типа возвращаемого значения функции Python с фиксированными клавишами словаря

У меня есть функция, которая возвращает словарь, который всегда имеет одни и те же ключи (отправка по сети и «преобразование в строку» с помощью json). И в основном моя функция выглядит так:

      def getTemps(self) -> dict:
    """
    get room and cpu temperature in °C as well as humidity in %
    """
    # send temperature request to server
    msg = {'type':'req', 'reqType':'temps'}
    self.send(msg)

    res = self.recieve()    # get response

    return res

и словарь, который вы получаете от этой функции, всегда выглядит примерно так:

      {'Room':float, 'CPU':float, 'hum':float}

поэтому мне было интересно, есть ли способ указать тип возвращаемого значения функции, чтобы вы знали, какие ключи есть в словаре:

      def getTemps(self) -> Dict['Room':float, 'CPU':float, 'hum':float]

но это не сработало, поскольку это только показало при наведении курсора на функцию (я использую vscode).

Я не думаю, что это что-то очень полезное, но что-то, что делает ваш код лучше, а также упрощает использование для кого-то другого. Так что если кто-то знает, возможно ли это и как, буду очень благодарен за ответ!

1 ответ

consider this:

      class Message:
    def __init__(self,room,cpu,hum):
        self.Room = room
        self.CPU = cpu
        self.hum = hum

and return Message(room,cpu,hum) or define a method to convert this to dict in the class if necessary.

This may be the only method.

Update: This is neither the only nor the best method, see comments.

Другие вопросы по тегам