2012-05-10 19 views
5

मैं वर्तमान में शुद्ध सूची के रूप में पाइपर्सिंग से परिणाम प्राप्त करने का प्रयास कर रहा हूं, इसलिए मैं इसे फ़्लैट कर सकता हूं। मैंने प्रलेखन में पढ़ा है कि'pyparsing.ParseResults' से एक शुद्ध सूची प्राप्त करना

ParseResults को asist() के रूप में कॉल करके स्ट्रिंग की सामान्य सूची में भी परिवर्तित किया जा सकता है। ध्यान दें कि यह किसी भी एम्बेडेड पार्स तत्वों के लिए परिभाषित किए गए किसी भी फ़ील्ड नाम के परिणाम पट्टी करेगा। (Pprint मॉड्यूल asList() द्वारा दिए गए नेस्टेड सामग्री को प्रिंट पर विशेष रूप से अच्छा है।)

तो मैं एक setParseAction जहाँ मैं ParseResult पर काम

मैं क्या मिलता है परिभाषित करने की कोशिश की:

>>> print type(tokens.args[0]) 
<class 'pyparsing.ParseResults'> 
>>> print type(tokens.args[0].asList) 
<type 'instancemethod'> 

लेकिन मुझे आखिरी बार टाइप सूची की उम्मीद/आवश्यकता थी। यहां asList() का उपयोग करते समय मुझे कुछ महत्वपूर्ण याद आना चाहिए।

डिटमार

पुनश्च: क्या टोकन वास्तव में की तरह लग रही के यहाँ एक MTC:

>>> print tokens.args[0] 
['foo1', ['xxx'], ',', 'graphics={', 'bar1', ['xxx,yyy'], ',', 'bar2', 
['xxx,yyy'], ',', 'bar3', ['xxx,yyy,', 'zzz=baz', ['xxx,yyy']], '}'] 

उत्तर

7

tokens.args[0].asList एक समारोह है। tokens.args[0].asList() उस फ़ंक्शन पर कॉल है (self तर्क से परे कोई तर्क नहीं)। ऐसा लगता है कि आप उस बाद की अभिव्यक्ति के प्रकार को जानना चाहते हैं।

4

तुम कोशिश कर सकते

print type(tokens.args[0].asList()) 
संबंधित मुद्दे