0

その値を代入string = i.lhs()すると、後で と比較すると 、 isprint (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 に答える