在python的行开头的@运算符

@ operator at the beginning of the line in python

本问题已经有最佳答案,请猛点这里访问。

我试图理解这个操作符@在Python中使用了什么。我看到了一些关于矩阵多重化的东西,但肯定不是这样,我举个例子:

1
2
3
 @property
 def num_reserved_ids(self):
    return 0

或:

1
2
 @registry.register_problem()
 class LibrispeechNoisy(Librispeech):

最后一个:

1
2
3
4
5
@registry.register_hparams
def transformer_librispeech_tpu_v1():
"""HParams for training ASR model on Librispeech on TPU v1."""
    hparams = transformer_librispeech_v1()
    update_hparams_for_tpu(hparams)

注册表是程序中使用的另一个文件。注册表中有一个函数。不知道"属性"是什么,但即使是我知道它是什么的注册表,我也无法理解运算符的用途:@,我有点慢,抱歉:/。

如果有人想查找更多的代码,您可以检查Tensor2传感器库:https://github.com/tensorflow/tensor2tensor/tree/master/tensor2tensor


我想你要找的是Python

这是python装饰师的wiki

A Python decorator is a specific change to the Python syntax that allows us to more conveniently alter functions and methods (and possibly classes in a future version). This supports more readable applications of the DecoratorPattern but also other uses as well.

理解它们的最好方法是从corey schafer的关于python装饰器的视频中。