首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以使函数参数接受2或更多类型?

是否可以使函数参数接受2或更多类型?
EN

Stack Overflow用户
提问于 2022-01-26 12:33:20
回答 1查看 78关注 0票数 3

如何创建一个函数,其参数接受2个或更多的数据类型。我有一个产品类,如下所示

代码语言:javascript
运行
复制
class Product:
      def __init__(self, name: str, price: int | float)
          self.product = {'name': name, 'price': price)

这将生成一个TypeError

代码语言:javascript
运行
复制
TypeError: unsupported operand type(s) for |: 'type' and 'type'

然后我尝试使用or操作符,但它只选择type int

如何确保它既接受int,又接受float。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-26 12:35:18

是的,在输入时,这是用Union完成的。

代码语言:javascript
运行
复制
from typing import Union

class Product:
    def __init__(self, name: str, price: Union[int, float])
        self.product = {'name': name, 'price': price)

注意,正如您可以从文档中看到的那样,这在int | float中是可能的,但只能从Python3.10版本开始。由于大多数用户还没有使用Python3.10,实际上人们仍然倾向于使用Union[int, float]。但是,如果您不关心支持Python3.10以下的版本,则最好使用int | float

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70863481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档