我遇到了'<<'的使用在使用pyparsing模块的Python示例中:
whereExpression << whereCondition + ZeroOrMore( ( and_ | or_ ) + whereExpression )
它显然不是二元左移运算符,但我没有在任何Python参考中找到它。有人可以解释一下吗?谢谢。
答案 0 :(得分:10)
与任何运算符一样,类可以重载<<
以定义自己的行为。您给出的示例看起来就像是使用pyparsing的代码。这是一个解析器库,以这种方式重载运算符。 <<
此处更新先前定义的占位符令牌的内容。阅读有关pyparsing的文档,了解有关其工作原理的更多信息。
底线是<<
可以表示任何内容,就像+
或<
可以表示任何内容一样,因为运算符的行为取决于它们所操作的对象的类型。您必须知道对象的类型才能理解行为。