分配string = i.lhs()
时的值,然后与之比较
print (var == 'P')
为var
时,'P'
会返回false。
for i in grammar.productions():
var = i.lhs()
P = "P"
if (not i.is_nonlexical()):
print var
print (var == P)
它对任何东西都返回false。我不明白为什么它会对所有内容都返回false。有提示吗?
答案 0 :(得分: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()
而不是询问它是否不是非法的