关于python中的一些语法问题

def donchian(
        self, n: int, array: bool = False
    ) -> Union[
        Tuple[np.ndarray, np.ndarray],
        Tuple[float, float]
    ]:
        """
        Donchian Channel.
        """
        up: np.ndarray = talib.MAX(self.high, n)
        down: np.ndarray = talib.MIN(self.low, n)

        if array:
            return up, down
        return up[-1], down[-1]

img


在vn.py看到的一段代码,关于donchian的定义,想请教
1.对于donchian后的-> Union, Union不是一个类吗,在这里代表什么呢?
2.对于up: np.ndarray = talib.MAX(self.high, n),为什么np.ndarray作为已定义的类,可以被talib.MAX/MIN赋值?
谢谢!

Union 是 Python 的类型提示库中的一个类型,用来表示可能是多种类型之一。在这里,Union[Tuple[np.ndarray, np.ndarray], Tuple[float, float]] 表示返回值可能是一个包含两个 numpy 数组的元组,或者是一个包含两个浮点数的元组。
talib.MAX(self.high, n) 和 talib.MIN(self.low, n) 是调用的 TA-Lib 库中的函数,这些函数会返回一个 numpy 数组,所以可以直接赋值给 np.ndarray 类型的变量。