用法一:@xxx是注解或者装饰器
可以查看下面的这个博客。
python装饰器“你会Python嘛?” “我会!” ‘那你给我讲下Python装饰器吧!’ “Python装饰器啊?我没用过哎” 简言之,python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。 一般而言,我们要想拓展原来函数代码,最直接的办法就是侵入代码里面修改,例如:...https://blog.csdn.net/xiangxianghehe/article/details/77170585?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165242741716781432972636%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165242741716781432972636&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-77170585-null-null.142^v9^pc_search_result_control_group,157^v4^control&utm_term=%E8%A3%85%E9%A5%B0%E5%99%A8&spm=1018.2226.3001.4187
个人认为这个up主讲解的很清楚 。
一篇文章搞懂Python装饰器所有用法https://www.bilibili.com/video/BV1UK411A7t3/
用法二:@是Python 3.5之后加入的矩阵乘法运算符
import numpy as np
a = np.reshape(np.arange(1, 5), (2, 2))
b = np.reshape(np.arange(0, 4), (2, 2))
print('矩阵a:\n', a)
print('矩阵b:\n', b)
print('a@b:\n', a @ b)
输出结果如下:==========================
矩阵a:
[[1 2]
[3 4]]
矩阵b:
[[0 1]
[2 3]]
a@b:
[[ 4 7]
[ 8 15]]