如何判断已安装模块中可用的方法

时间:2019-03-08 01:31:45

标签: python module

如果我在Python提示符下执行print(dir(pychromecast)),则会在此消息的底部获得列表。应该使用哪种方法?因为有些像pychromecast.get_device_status()那样,但是有些像_get_chromecast_from_hostget_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 个答案:

答案 0 :(得分:2)

  

但是其他类似_get_chromecast_from_hostget_chromecasts的对象会抛出诸如...的属性错误。

部分问题似乎是拼写错误。您提到了get_chromecasts,但您的例外行中提到了chrome 主机

  

AttributeError:模块'pychromecast'没有属性'get_chrome 主机'

您是否也可能在打_get_chromecast_from_host时出现错字,或者提供了错误的论点?您能否提供该函数调用的特定异常?

答案 1 :(得分:1)

他们都应该“工作”。其中有些将是方法,有些将是变量。您是否尝试过_get_chromecast_from_host _get_chromecast_from_host()?至于该属性前面的_或__,则表示该属性已受到保护,您可能不应该直接对其进行修改,尽管只需阅读即可。至少那是我的理解:)