Skip to main content
 首页 » 编程设计

python之python是否有等同于R语言中的符号对象

2025年05月04日17qq78292959

我有 Python 和 C++ 等常规编程语言的背景。我最近开始使用 R 语言进行一些数据分析,我很难理解什么是 R 中的 symbol 和 expression 对象,以及为什么不需要等价物Python 或 C++ 中的对象。

R语言示例代码如下:

z <- expression(x+y) 
x <- 1 
y <- 2 
eval(z) 

请您参考如下方法:

这是一个数学表达式,或者更确切地说,是一个可以计算的 R 语法正确表达式。我不知道 python 中的等效项,因为解析和评估是使用函数 eval 完成的,而在 R 中,解析和评估需要两个阶段。

举个例子

python :

x = 1 
y = 2 
eval("x+y") 
Out[376]: 3 

现在用 R 做同样的事情,我们有:

x = 1 
y = 2 
z = parse(text="x+y") 
eval(z) 
[1] 3 

可以看出两者的区别在于解析部分。在 python 中,这是在 eval 函数中完成的,而在 R 中,这是独立完成的。

现在解析的结果对象就是所谓的表达式:

class(z) 
[1] "expression" 
 typeof(z) 
[1] "expression" 

如您所见,解析获取指定语言对象的输出只是一个表达式。这在评估时会为您提供关于该语言的对象。由于 python 中的 eval 对 python 对象进行解析和求值,我认为 python 中没有等价的表达式


阅读延展