我目前正试图将pyparsing的结果作为一个纯粹的列表,所以我可以将它弄平.我在文档中读到了
ParseResults也可以通过调用asList()转换为普通的字符串列表.请注意,这将删除已为任何嵌入式解析元素定义的任何字段名称的结果.(pprint模块特别擅长打印asList()给出的嵌套内容.)
所以我尝试定义一个setParseAction我在ParseResult上工作的地方
我得到的是:
>>> print type(tokens.args[0])
<class 'pyparsing.ParseResults'>
>>> print type(tokens.args[0].asList)
<type 'instancemethod'>
Run Code Online (Sandbox Code Playgroud)
但我期待/需要最后一个是类型列表.在asList()这里使用时,我必须遗漏一些重要的东西.
迪特马尔
PS:这里有令牌实际上是什么样的MTC:
>>> print tokens.args[0]
['foo1', ['xxx'], ',', 'graphics={', 'bar1', ['xxx,yyy'], ',', 'bar2',
['xxx,yyy'], ',', 'bar3', ['xxx,yyy,', 'zzz=baz', ['xxx,yyy']], '}']
Run Code Online (Sandbox Code Playgroud) 我试图根据要满足的条件让参数属于特定类型。但我不太确定如何做到这一点,或者这在 Modelica 中是否真的可能/合法。原则上我想要的是这样的(非工作代码示例):
package test
type TypeA=enumeration(A,C,E);
type TypeB=enumeration(B,D,F);
model foo
parameter Boolean Condition;
parameter if Condition then TypeA else TypeB MyParameter;
end foo;
end test;
Run Code Online (Sandbox Code Playgroud)