पाइथन में 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
स्थान प्रतिदेय है और फ़ाइल पथ देता है, लेकिन पहले परिणाम में सूचीबद्ध नहीं है। यह कोड समापन उपकरण के साथ भी प्रदर्शित नहीं होता है। क्या ऐसा इसलिए है क्योंकि इसे गेटटर विधि के माध्यम से लाया जा रहा है? मैं इसे _prop_map_get_ और _prop_map_put_ के अंतर्गत सूचीबद्ध करता हूं।
इसके अलावा, currentTrack.Location वर्तमान फ़ाइल क्यों लौटाता है जब वर्तमानTrack._prop_map_get _ ['स्थान'] लौटाता है "(1610874880, 2, (8, 0),(), 'स्थान', कोई नहीं)?" यह फ़ाइल पथ स्ट्रिंग कहां मिल रहा है?
+1 यह समझना था जब लाइटबुल वास्तव में पाइथन के लिए मेरे सिर पर चला गया (अच्छी तरह से, सामान्य रूप से गतिशील भाषाओं के लिए ...) – bgporter
मुझे उत्सुकता है कि कैसे पाइथनविन मुझे पूरा करने के लिए विशेषताओं की सही सूची दे सकता है 'COMObject' उदाहरण के साथ, और क्या पाइथन कोड में एक ही चीज़ करना संभव है, या यदि यह ऐसा कुछ कर रहा है जो Win32com पैकेज का खुलासा नहीं करता है। – geoffspear