class_docstr: 与 :meth:`Trainer.on` 函数配合使用，达到控制 callback 函数运行时机的目的。
  
  :param value: Trainer 的 callback 时机；
  :param every: 每触发多少次才真正运行一次；
  :param once: 只在第多少次触发才真正运行一次。即第 ``once`` 次调用时才运行相应的函数，无论之前还是之后均不会运行；
  :param filter_fn: 输入参数的应该为 ``(filter, trainer)``，其中 ``filter`` 对象中包含了 `filter.num_called` 和
      `filter.num_executed` 两个变量分别获取当前被调用了多少次，真正执行了多少次；``trainer`` 对象即为当前正在运行的 Trainer；
code: def __str__(self):
      return (
          "<event={0}, every={1}, once={2}, filter fn is:{3}>".format(
              self.value, self.every, self.once, self.filter_fn
          )
      )
  
imports: from typing import Optional, Callable, Dict
  from functools import wraps
label_desc: Use image node_id 2 for calling the Event obj's underlying member method code with example usage: obj.__str__() and returns: str