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