3
我覺得我做的我怎麼稱呼setResultsName()
一個錯誤:的Python/PyParsing:困難setResultsName
from pyparsing import *
DEPT_CODE = Regex(r'[A-Z]{2,}').setResultsName("Dept Code")
COURSE_NUMBER = Regex(r'[0-9]{4}').setResultsName("Course Number")
COURSE_NUMBER.setParseAction(lambda s, l, toks : int(toks[0]))
course = DEPT_CODE + COURSE_NUMBER
course.setResultsName("course")
statement = course
從IDLE:
>>> myparser import *
>>> statement.parseString("CS 2110")
(['CS', 2110], {'Dept Code': [('CS', 0)], 'Course Number': [(2110, 1)]})
輸出我希望:
>>> myparser import *
>>> statement.parseString("CS 2110")
(['CS', 2110], {'Course': ['CS', 2110], 'Dept Code': [('CS', 0)], 'Course Number': [(2110, 1)]})
setResultsName()
只適用於終端嗎?
'repr()'做了什麼? – 2010-05-30 21:27:06
此外,看起來'setResultsName()'返回一個副本,但'setParseAction()'不 - 爲什麼不一致?還是我誤會了? – 2010-05-30 21:29:15
@Rosarch:'repr()'返回對象的字符串表示。它通常比'str()'更能提供對象內數據的更完整視圖。我認爲你是對的,'setParseAction'返回'self',而'setResultName'返回一個副本。我沒有足夠的知識來解釋爲什麼這樣。 – unutbu 2010-05-31 02:21:51