运算符@在python中的含义是啥[重复]

Posted

技术标签:

【中文标题】运算符@在python中的含义是啥[重复]【英文标题】:What dose the operator @ mean in python [duplicate]运算符@在python中的含义是什么[重复] 【发布时间】:2019-09-12 06:29:30 【问题描述】:

我正在阅读某人的代码,其中出现了运算符“@”(实际上,我什至不确定@是否是运算符)。

我四处寻找,但找不到任何线索。我想这是一些高级用法。

下面是一些示例代码:

hidden = self.adj_norm @ tf.sparse_tensor_dense_matmul(hidden, w) + b

hidden = self.adj_norm @ hidden @ w + b

final_output = self.adj_norm @ tf.sparse_tensor_dense_matmul(final_output, w) + b

final_output = self.adj_norm @ final_output @ w + b

有人可以解释或提供一些我可以检查“@”用法的参考吗?

【问题讨论】:

+ 是什么意思。这取决于它适用于什么。在您的情况下,@ 似乎被用作点积。 【参考方案1】:

大多数情况下@被用作装饰器。但是,在您的情况下,它似乎用于矩阵乘法。

在 python 矩阵乘法中,x @ y 调用 x.__matmul__(y) 或:

x @ y
#equivalent to

dot(x, y)
and

x @= y
#equivalent to

x = dot(x, y)

Dot 是 Numpy 和 x 和 y 中的矩阵乘法函数。

【讨论】:

x@y 不等于 np.dot(x, y) dot 和 matmul 是不同的操作 是python 3独有的吗?我正在使用 python 2.7

以上是关于运算符@在python中的含义是啥[重复]的主要内容,如果未能解决你的问题,请参考以下文章

波浪线(波浪线)(即“~”运算符在 Python 中的作用是啥? [复制]

Python - 列表上*运算符的用途是啥[重复]

是啥 ?。运营商和我可以在哪里使用? JavaScript中的空值合并运算符[重复]

急!!哪个高手回答?1. SELECT语句中的通配符有几种?含义分别是啥?

在 C 中对于后缀和前缀运算符,操作数应该是一个左值,那么在这些运算符的情况下,左值对于指针变量的实际含义是啥?

python中的[][](双方括号运算符)运算符是啥?