【问题标题】:Python typing with with types that may not be imported使用可能无法导入的类型进行 Python 输入
【发布时间】:2019-11-04 17:52:01
【问题描述】:

当我们等待 numpy 实现类型化时,我想创建一个简单的类型化对象来指示变量是 numpy ndarray 或 tensorflow 张量。我该怎么做呢?我想要类似的东西

X = Union[np.ndarray, tf.Tensor]

理想情况下,即使我不导入 tensorflow,我也可以定义这种类型。如果我必须只使用占位符类型,那将是可以接受的。如果我走那条路,我该怎么做?有没有类似的东西:

X = typing.PlaceholderType('X')

【问题讨论】:

    标签: python python-typing


    【解决方案1】:

    你总是可以传递一个简单的字符串而不是一个实际的对象:

    X = Union[np.ndarray, 'tf.Tensor']
    

    这只是暂时的(我用这个词很宽松),直到 Python 4.0 的发布,那时函数注释不会被评估,而只会保存为字符串,直到有人在运行时想要显式地评估它们。

    【讨论】:

    • 谢谢!评估类型的人如何知道tf 在哪里?我需要输入if TYPE_CHECKING: import tensorflow as tf 之类的东西吗? (那很好。)
    猜你喜欢
    • 2020-03-13
    • 2016-04-15
    • 1970-01-01
    • 2022-10-19
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    相关资源
    最近更新 更多