类型警告 Pycharm

Type warning Pycharm

给定以下示例:

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 可以是浮点数或 np.ndarray 吗?

使用Union:

from typing import Union

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