Тип предупреждения Pycharm - PullRequest
       32

Тип предупреждения Pycharm

0 голосов
/ 06 февраля 2020

С учетом следующего примера:

class A:
    def __init__(self, x: (float, np.ndarray) = 0.05):
        self.x = x

я собираюсь дать пользователю подсказку, что аргумент x может быть плавающей точкой или массивом numpy. Если ничего не указано, установите значение по умолчанию 0.05. Это правильное использование? Если да, почему Pycharm нагревается, когда я начинаю A следующим образом? :

 a = A(x=np.random.rand(3, 3))   #Expected type 'float', got 'ndarray' instead

Если это неправильное использование, где мое неправильное мышление? Разве x: (float, np.ndarray) не означает, что x может быть float или np.ndarray?

1 Ответ

4 голосов
/ 06 февраля 2020

Использование Union:

from typing import Union

class A:
    def __init__(self, x: Union[float, np.ndarray] = 0.05):
        self.x = x
...