TypeError:| 不支持的操作数类型:“type”和“NoneType”[重复]

问题描述 投票:0回答:1
from dataclasses import dataclass

@dataclass
class InventoryItem:
    """Class for keeping track of an item in inventory."""
    name: str | None = None
    unit_price: float
    quantity_on_hand: int = 0

TypeError:| 不支持的操作数类型:“type”和“NoneType”

Python 3.9

我认为问题出在使用最新版本的python,如何解决。

我尝试使用“或” 但这没有帮助

python nonetype typing
1个回答
41
投票
仅 3.10 或更高版本支持

str | None
语法。使用

from typing import Optional
name: Optional[str] = None

对于右侧不是

None
或有两种以上类型的情况,您可以使用
Union
。这也可以允许多种类型或
None

from typing import Union
# equivalent to str | int | float
foo: Union[str, int, float] = "bar"

# equivalent to str | int | None
bar: Union[str, int, None] = 42
© www.soinside.com 2019 - 2024. All rights reserved.