2009-11-05 9 views
7

मैं Python विकास के लिए Komodo संपादित का उपयोग कर रहा हूं, और मैं ऑटो पूर्ण से सर्वश्रेष्ठ प्राप्त करना चाहता हूं।कमोडो पायथन ऑटो पूर्ण: परिवर्तनीय मेटाडेटा द्वारा टाइप अनुमान?

मैं ऐसा करते हैं तो:

a = A() 
a. 

मैं ए

के सदस्यों में से एक सूची देख सकते लेकिन अगर मैं ऐसा करते हैं:

a = [A()] 
b = a[0] 
b. 

यह काम नहीं करता। मैं यह करने में सक्षम होना चाहता हूं:

a = [A()] 
b = a[0] 
"""b 

Type: A 
""" 
b. 

तो मैं ऑटो को कैसे पूरा कर सकता हूं कि बी प्रकार ए है?

उत्तर

8

यह वास्तव में आपके प्रश्न का उत्तर नहीं देता है, लेकिन Wing IDE के साथ आप assert isinstance(b, A) के साथ प्रकार विश्लेषक को संकेत दे सकते हैं। here देखें। मुझे Komodo के साथ ऐसा करने का कोई तरीका नहीं मिला है, हालांकि स्पष्ट रूप से यह possible है जब PHP या जावास्क्रिप्ट लिखते हैं।

अद्यतन:

मैं एक तरह से ऐसा करने में Komodo चाल करने के लिए मिल गया है:

if 0: b=A() 

यह (कम से कम कोमोडो 5.2 पर) काम करता है और कोई साइड इफेक्ट है, लेकिन यकीन है जो भी आपका कोड पढ़ता है उसे भ्रमित करने के लिए।

+1

क्या एक भयानक हैक के बारे में पता होना चाहिए! मैं सिर्फ ईर्ष्यावान हूं कि आपने इसे पहले पाया :) अगर मैं पहले से नहीं था तो मैं +1 कर दूंगा। –

+0

मुझे लगता है कि मैं विंग आईडीई में बदल रहा हूं। जोर देने की स्थिति (बी, ए) वाक्यविन्यास अच्छी तरह से काम करता है। –

+0

मुझे यह जानकर खुशी हो रही है कि यह मेरे Emacs 24 + जेडी सेटअप के साथ भी काम करता है। –

3

मुझे नहीं लगता कि आपको इसके साथ बहुत भाग्य होगा। समस्या यह है कि मामलों के सबसे सरल को छोड़कर पाइथन में चर के प्रकार को स्थिर रूप से अनुमानित करना वास्तव में मुश्किल है। अक्सर रन-टाइम तक टाइप ज्ञात नहीं होता है और इसलिए ऑटो पूर्णता संभव नहीं है।

आईडीई स्पष्ट और सर्वोत्तम अनुमानों को काम करने के लिए कुछ स्थिर विश्लेषण करता है, लेकिन मैं शर्त लगाता हूं कि यह एक कंटेनर में तत्वों की कोशिश भी नहीं कर रहा है। यद्यपि हम काम कर सकते हैं कि bA प्रकार है, यहां तक ​​कि आपके कोड में छोटी भिन्नताएं इसे अनजान कर सकती हैं, खासकर जब यह एक परिवर्तनीय कंटेनर में है।

संयोग से मैंने इसे पूर्ण कॉमोडो आईडीई पर आजमाया है और यह बेहतर नहीं है। मैंने सुना है कि विंग आईडीई में उत्कृष्ट कोड पूर्णता है, लेकिन मुझे यकीन नहीं होगा कि यह किसी भी बेहतर काम कर सकता है।

+0

मैं समझता हूं कि स्वचालित प्रकार अनुमान मुश्किल है। मैं क्या करना चाहता हूं मैन्युअल प्रकार अनुमान है। मैं औसत समय में विंग को देखता हूं। –

+0

आह, अब मैं समझता हूं। मेरा पहला विचार यह था कि इंटरजे का उल्लेख है, लेकिन यह कमोडो के लिए काम नहीं करता है। काम करने के लिए मैं एकमात्र चीज प्राप्त कर सकता हूं 'बी = ए (बी)' जोड़ रहा है, लेकिन यह भयानक है, काम करने की गारंटी नहीं है और इसके दुष्प्रभाव हैं। –

+0

पूरी तरह से सहमत हैं, मुझे लगता है कि कोड पूरा करने के लिए यह नहीं है कि पाइथन के लिए भाषाओं के लिए काम करते हैं, इसलिए मेरे लिए, मैं हमेशा क्या हो रहा है और SO – zinking

संबंधित मुद्दे