【发布时间】:2013-09-27 15:46:10
【问题描述】:
我正在审查一些基本 Python 语法内容的测试,我想确保我对符号和运算符之间的区别有正确的理解。符号可以是字符串或运算符,而运算符只能是对字符或字符串执行某些操作的东西,对吧?
【问题讨论】:
我正在审查一些基本 Python 语法内容的测试,我想确保我对符号和运算符之间的区别有正确的理解。符号可以是字符串或运算符,而运算符只能是对字符或字符串执行某些操作的东西,对吧?
【问题讨论】:
编程语言中的符号要么是某个值的绑定(例如变量标识符),要么是值本身(例如"foo"、123、True)、关键字(例如def、 class, import,try, except,...) 或其他语言特定的构造((), {}, [],...)。
所以符号不一定是字符串。
相比之下,运算符在一个或多个值中定义了一个特定的函数。 (有一元、二元、三元、...运算符)
例如。 + in 1+1, a<b 是运算符
值得注意的是,如果您从编译器的角度考虑这个想法,那么您在代码中编写的所有内容都是一个符号。也就是说,即使 +、-、*、/ 对词法分析器来说也只是符号。 (我认为这个事实超出了你的问题范围)。因此,我们将把我们的答案限制在语言语法领域。
但是这个想法对于任何编程语言都是通用的
【讨论】:
运算符是一些重要的 Python 函数的语法表示。例如,和 a + b 中的中缀 + 运算符。有一个module called operator 将标准运算符表示为函数。此外,special methods(如上面的 hus787 评论)可以覆盖类实例的运算符。
符号是Python grammar 的一个元素。 Symbol 可以表示整个程序、语句、运算符、名称、文字等,甚至可以表示缩进和缩进(在 Python 的情况下)。
这个术语甚至不是 Python 特有的。
【讨论】: