您的位置:

Python Union类型:创建可包含多种不同数据类型的变量

一、什么是Python Union类型

Python Union类型是Python 3.10版本中引入的新功能之一。它是一种特殊的类型注释,用于表示一个变量可以包含多种数据类型。一般情况下,一个变量只能包含一种数据类型,但是使用Union类型可以创建一个变量,可以包含多种类型的数据。

二、Union类型的语法


from typing import Union

def func(name: str, age: Union[int, float]) -> None:
    print(f"{name} is {age} years old.")

上面的代码中,Union[int, float]表示age参数可以是int型或float型。

三、Union类型的使用场景

Union类型的主要应用场景在于参数类型不确定或可选参数,即参数可以是多种不同的数据类型,可以灵活处理。比如函数中可能需要传入一个整数或字符串,而这个整数或字符串并不是必须的,可以使用Union类型来实现。

除了函数参数之外,Union类型还可以用于定义变量类型或类属性类型。在这些情况下,Union类型可以让变量或属性接受不同的数据类型,这是非常有用的。

四、Union类型的示例

下面是一个示例代码,展示了如何使用Union类型创建包含多种不同数据类型的变量。


from typing import Union

def get_value(x: Union[int, str]) -> Union[int, str]:
    if isinstance(x, int):
        return x + 1
    elif isinstance(x, str):
        return x + "1"

value1 = get_value(10)
value2 = get_value("hello")

print(value1)
print(value2)

在上面的代码中,get_value函数接受一个Union类型参数,可以是int型或str型。并且函数返回值也是Union类型的int或str。在get_value函数中,通过判断参数类型,返回相应的结果。当参数为整数时,函数返回整数加1的结果,当参数为字符串时,函数返回字符串加1的结果。

运行上面的代码,得到的结果如下:


11
hello1

五、结论

Python Union类型在Python 3.10版本中引入,它允许变量可以包含不同的数据类型。Union类型的语法简单明了,适用于参数类型不确定或可选参数,也可以用于定义变量类型或类属性类型。Union类型可以提高程序的灵活性和健壮性,是Python编程中一个非常有用的类型注释。