這兩個參數(shù)本身都不是可選的,但使用一個參數(shù)禁止使用另一個參數(shù):它們是相互排斥的。 提供兩個單獨的函數(shù)更為簡潔,每個函數(shù)都有一個必需的參數(shù),并通過lower-level私有方法實現(xiàn)。 NameOrID = Union[Literal['account_name'], Literal['account_id']]class Team: def __init__(self, players: List[Player]): self.players = players def get_player_by_name(self, name: str): return self._get_player('account_name', name) def get_player_by_id(self, id: str): return self._get_player('account_id', id) def _get_player(self, attr: NameOrId, val: str): for p in self.players: if getattr(p, attr) == val: return p 如果您真的愿意,可以將_get_player公開,但不清楚您是否需要在公共API中具有這種靈活性。