0

分配string = i.lhs()其值时,稍后与 is比较时print (var == 'P')返回 false 。var'P'

 for i in grammar.productions():
    var = i.lhs()
    P = "P"
    if (not i.is_nonlexical()):
        print var
        print (var == P)

它在任何事情上都返回 false。我不明白为什么它在所有内容上都返回 false。任何提示?

4

1 回答 1

0

您不能将 lhs() 对象与字符串进行比较,但您可以使用 获取对象的字符串表示形式.lhs().__str__(),并将其与另一个字符串进行比较,如下所示:

for i in grammar.productions() :
   var = i.lhs()
   P = "P"
   if (not i.is_nonlexical()) :
       print var
       print (var.__str__() == P)

此外,您可以使用is_lexical()而不是询问它是否不是非词汇的

于 2013-03-20T08:19:22.097 回答