Как узнать, какие методы доступны в установленном модуле - PullRequest
1 голос
/ 08 марта 2019

Если я сделаю print(dir(pychromecast)) в приглашении Python, я получу список внизу этого сообщения.Какой из методов должен работать?Потому что некоторые, например, pychromecast.get_device_status(), а другие, такие как _get_chromecast_from_host или get_chromecasts, выдают ошибку атрибута, например:

AttributeError: module 'pychromecast' has no attribute 'get_chromehosts'

Это то, что я делаю / понимаю что-то в корне неправильно?_ перед именем играет на нем?

Как и было обещано, вот вывод dir:

['APP_BACKDROP', 'APP_DASHCAST', 'APP_MEDIA_RECEIVER', 'APP_PLEX',
 'APP_SPOTIFY', 'APP_YOUTUBE', 'CAST_TYPES', 'CAST_TYPE_CHROMECAST',
 'Chromecast', 'ChromecastConnectionError', 'ControllerNotRegistered',
 'DeviceStatus', 'IDLE_APP_ID', 'IGNORE_CEC', 'LaunchError',
 'MultipleChromecastsFoundError', 'NoChromecastFoundError', 'NotConnected',
 'PyChromecastError', 'PyChromecastStopped', 'STREAM_TYPE_BUFFERED', 
 'UnsupportedNamespace', '_LOGGER', '__all__', '__builtins__', '__cached__',
 '__doc__', '__file__', '__loader__', '__name__', '__package__', 
 '__path__', '__spec__', '__version__', '__version_info__', 
 '_get_chromecast_from_host', '_get_chromecast_from_service', 
 'cast_channel_pb2', 'config', 'controllers', 'dial', 
 'discover_chromecasts', 'discovery', 'error', 'fnmatch', 'get_app_config', 
 'get_chromecasts', 'get_device_status', 'get_possible_app_ids', 'json', 
 'logging', 'reboot', 'requests', 'socket_client', 'start_discovery',
 'stop_discovery', 'threading']

Ответы [ 2 ]

2 голосов
/ 08 марта 2019

Но другие, такие как _get_chromecast_from_host или get_chromecasts, выдают ошибку атрибута, например ...

Часть проблемы может показаться опечаткой. Вы упоминаете get_chromecasts, но в строке исключения упоминается chrome hosts :

AttributeError: модуль 'pychromecast' не имеет атрибута 'get_chrome hosts '

Возможно ли, что вы также опечатали в вызове _get_chromecast_from_host или предоставили неверные аргументы? Не могли бы вы предоставить конкретное исключение для этого вызова функции?

1 голос
/ 08 марта 2019

Они все должны "работать".Некоторые из них будут методами, а некоторые будут переменными.Вы пробовали _get_chromecast_from_host и _get_chromecast_from_host()?Что касается _ или __ перед атрибутом, это означает, что он защищен, и вы, вероятно, не должны напрямую изменять его, хотя просто читать его должно быть хорошо.По крайней мере, это мое понимание :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...