python行首的@运算符

时间:2018-08-08 11:45:44

标签: python python-decorators

我试图了解此运算符@在python中使用什么。 我看到了一些关于矩阵乘法的信息,但是肯定不是这种情况,我举一个例子:

 @property
 def num_reserved_ids(self):
    return 0

或者:

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

最后一个:

@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)

注册表是程序中使用的另一个文件。register_hparams是其中的一个函数。 不知道什么是“属性”,但是即使注册表我也知道它是什么,我也无法理解操作员的目的:@,我有点慢,对此感到抱歉:/ ..

如果有人想寻找更多代码,可以检查tensor2tensor库: https://github.com/tensorflow/tensor2tensor/tree/master/tensor2tensor

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是PythonDecorators

这里是Wiki For Python Decorators

  

Python装饰器是对Python语法的特定更改,它使我们能够更方便地更改函数和方法(以及将来版本中的类)。这支持DecoratorPattern的更具可读性的应用程序,也支持其他用途。

了解它们的最好方法是从Corey Schafer's Video on Python Decorators