我有一个名为
price_type
的函数参数,仅允许使用 A
(卖价)、B
(出价)、M
(中价)或它们的任意组合的参数,例如: AB
或ABM
。排列方式也无关紧要,因此 AB
与 BA
一样有可能被输入,并且它们都是有效的。
def __get_base_data(
symbol: str,
count: int,
price_type: str,
):
如何输入
price_type
的提示,这样我就不必显式命名每个可能的选项?做类似的事情
Literal["A", "B", "M", "AB", "BA", "AM" ....]
我觉得有点可笑。有更好的方法吗?
也许将
price_type
映射到 str
在您的情况下并不理想,可能的解决方案是创建一个枚举 PaymentType
并将 price_type
映射到它。由于您可以分配多个 PaymentType
,您还可以期望收到一组 PaymentType
属性。
from enum import Enum
from typing import Tuple
def __get_base_data(
symbol: str,
count: int,
price_types: Tuple[PriceType, ...],
):
class PriceType(Enum):
A = 1
B = 2
M = 3