Подсказка о типе Telethon asyncioPython

Программы на Python
Ответить
Anonymous
 Подсказка о типе Telethon asyncio

Сообщение Anonymous »

Я использую библиотеку telethon в Python. Я пытаюсь использовать подсказку типа, чтобы функция автозаполнения PyCharm работала правильно. В приведенном ниже фрагменте кода функция filter_open_dialogs принимает в качестве входных данных возвращаемое значение функции get_dialogs(). Читая документацию телемарафона, я обнаружил, что возвращаемый тип get_dialogs() — TotalList, поэтому добавьте подсказку типа во входной аргумент диалогов. Затем я попытался вызвать функцию filter_open_dialogs:

Код: Выделить всё

from telethon.tl.types import User
from telethon.helpers import TotalList
from telethon import TelegramClient, sync

class Crawler:

def __init__(self, fetch: bool):

self._client = TelegramClient('some_name', my_api_id, 'my_secret_api_hash')
self._me = self._client.start(phone='my_phone_number', password='my_2fa_password')
if fetch:
self.get_open_dialogs()

def get_open_dialogs(self):
if self._me:
Crawler.filter_open_dialogs(self._me.get_dialogs(), [])
return self._me.get_dialogs()

@staticmethod
def filter_open_dialogs(dialogs: TotalList, filter_list: list):
result = []
if dialogs and dialogs.total:
for dialog in dialogs:
entity = dialog.entity
if not isinstance(entity, User) and entity.id not in filter_list:
result.append(entity)
return result
Но в строке filter_open_dialogs(self._me.get_dialogs(), []) PyCharm показывает это предупреждение:
Ожидаемый тип TotalList', вместо этого получено 'Coroutine'...
Есть мысли, что происходит не так?>

Подробнее здесь: https://stackoverflow.com/questions/521 ... -type-hint
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»