我想知道为什么这是不正确的。这是一个突出错误的小例子:
import typing
kwargs: dict = {}
region, city, state = kwargs.get('region'), kwargs.get('city'), kwargs.get('state')
ordered_params = [city, state, region]
last = None
valid_depth = 0
while ordered_params:
last = ordered_params.pop()
if last is None:
break
valid_depth += 1
if any(p is not None for p in ordered_params):
raise ValueError("must specify everything")
filter_requirements = [
(
'region', []
),
(
'state', [
('region', region),
]
), (
'city', [
('region', region),
('state', state),
]
), (
'name', [
('region', region),
('state', state),
('city', city),
]
)
]
main_select: str
required_where: typing.List[typing.Tuple[str, str]]
main_select, required_where = filter_requirements[valid_depth]
最后一行说表达式有一种“对象”类型,但运行得很好。