Python の dir() 関数がすべての呼び出し可能な属性を表示しないのはなぜですか?
import win32com.client
iTunes = win32com.client.gencache.EnsureDispatch("iTunes.Application")
currentTrack = win32com.client.CastTo(iTunes.CurrentTrack,"IITFileOrCDTrack")
print dir(currentTrack)
結果:
['AddArtworkFromFile', 'CLSID', 'Delete', 'GetITObjectIDs', 'Play', 'Reveal', 'UpdateInfoFromFile', 'UpdatePodcastFeed', '_ApplyTypes_', '__doc__', '__eq__', '__getattr__', '__init__', '__module__', '__ne__', '__repr__', '__setattr__', '_get_good_object_', '_get_good_single_object_', '_oleobj_', '_prop_map_get_', '_prop_map_put_', 'coclass_clsid']
print currentTrack.Location
Location は呼び出し可能で、ファイル パスを返しますが、最初の結果には表示されません。また、コード補完ツールでも表示されません。ゲッターメソッドで取得しているからでしょうか? _prop_map_get_ と _prop_map_put_ の下にリストされています。
また、currentTrack._prop_map_get_['Location'] が "(1610874880, 2, (8, 0), (), 'Location', None)" を返すのに、currentTrack.Location がファイル パスを返すのはなぜですか? ファイルパス文字列はどこで取得していますか?