class_docstr: 检测拥有 shape 和 dtype 属性的对象。一般就是 np.ndarray 或者各类 tensor 。
code: def __subclasshook__(cls, subclass: Any) -> Union[bool, Any]:
      if cls is HasShapeDtype:
          if hasattr(subclass, "shape") and hasattr(subclass, "dtype"):
              return True
          return False
      return NotImplemented
  
file_path: fastNLP/fastNLP/core/collators/padders/get_padder.py
imports: from typing import Sequence, Any, Union, Dict
  from abc import ABC
  from fastNLP.core.log import logger
  from .padder import Padder, NullPadder
  from .numpy_padder import NumpyNumberPadder, NumpySequencePadder, NumpyTensorPadder
  from .torch_padder import TorchNumberPadder, TorchSequencePadder, TorchTensorPadder
  from .raw_padder import RawNumberPadder, RawSequencePadder, RawTensorPadder
  from .paddle_padder import PaddleTensorPadder, PaddleSequencePadder, PaddleNumberPadder
  from .jittor_padder import JittorTensorPadder, JittorSequencePadder, JittorNumberPadder
  from .oneflow_padder import OneflowTensorPadder, OneflowSequencePadder, OneflowNumberPadder
  from .exceptions import *
label_desc: Use image node_id 1 for calling the HasShapeDtype obj's underlying member method code with example usage: obj.__subclasshook__(cls, subclass) and returns: NotImplemented, False, True