我探索的API,並使用以下,看看有什麼方法可以不通過眼睛的所有屬性與dir()
搜索:可調用(obj)是否嘗試調用?
methods = [m for m in dir(kt) if callable(getattr(kt, m))]
會拋出一個異常:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/soco/core.py", line 103, in inner_function
raise SoCoSlaveException(message)
soco.exceptions.SoCoSlaveException: The method or property "cross_fade" can only be called/used on the coordinator in a group
好了,我無法使用cross_fade
,那很好。但我沒有試圖稱呼它,我只是想知道我是否可以。
我本以爲callable()
能夠使用類似於type()
的東西進行檢查,但它似乎試圖撥打電話並且只能捕獲某些類型的異常。
當我嘗試type(kt.cross_fade)
,並且在終端中嘗試>>> kt.cross_fade
時,我得到相同的異常。
所以我想這裏有兩個問題:是否callable
們試圖打電話?而且,什麼會導致方法「存在」但完全不可用?