Python печатает с типами, которые не могут быть импортированы - PullRequest
0 голосов
/ 22 июня 2019

Пока мы ожидаем, что numpy реализует типизацию, я хочу создать простой объект типизации, чтобы указать, что переменная является либо numpy ndarray, либо тензорным тензорным потоком. Как мне это сделать? Я хочу что-то вроде

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

В идеале я мог бы определить этот тип, даже если я не импортирую тензорный поток. Если мне нужно просто использовать тип заполнителя, это будет приемлемо. Если я пойду этим путем, как я могу это сделать? Есть ли что-то вроде:

X = typing.PlaceholderType('X')

1 Ответ

2 голосов
/ 22 июня 2019

Вы всегда можете передать простую строку вместо реального объекта:

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

Это обязательно только временно (я использую термин свободно), до выпуска Python 4.0, когда аннотации функций не будут оцениваться, а будут сохраняться как строки, пока кто-то во время выполнения не захочет явно их оценить.

...