ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
函数`lex.lex()`使用Python的反射机制读取调用上下文中的正则表达式,来创建lexer。lexer一旦创建好,有两个方法可以用来控制lexer对象: * `lexer.input(data)` 重置lexer和输入字串 * `lexer.token()` 返回下一个LexToken类型的标记实例,如果进行到输入字串的尾部时将返回`None` 推荐直接在lex()函数返回的lexer对象上调用上述接口,尽管也可以向下面这样用模块级别的lex.input()和lex.token(): ~~~ lex.lex() lex.input(sometext) while 1: tok = lex.token() if not tok: break print tok ~~~ 在这个例子中,lex.input()和lex.token()是模块级别的方法,在lex模块中,input()和token()方法绑定到最新创建的lexer对象的对应方法上。最好不要这样用,因为这种接口可能不知道在什么时候就失效(译者注:垃圾回收?)