Python中的dir()函數怎麼沒有顯示所有的可調用屬性?爲什麼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
位置是可調用和返回的文件路徑,而不是在第一個結果列。它也不會顯示代碼完成工具。是因爲它是通過getter方法獲取的嗎?我看到它列在_prop_map_get_和_prop_map_put_下。當currentTrack._prop_map_get _ ['Location']返回「(1610874880,2,(8,0),(),'Location',None)?」時,爲什麼currentTrack.Location返回文件路徑?它在哪裏得到文件路徑字符串?
+1瞭解這一點的時候,燈泡真的繼續我的頭爲Python(好吧,一般的動態語言...) – bgporter 2010-11-05 17:23:23
我很好奇,如何PythonWin可以給我一個完整的屬性列表完成使用'COMObject'實例,以及是否可以在Python代碼中執行相同的操作,或者是否執行win32com軟件包不公開的任何操作。 – geoffspear 2012-08-08 15:02:10