Код: Выделить всё
if foo:
bar = 1
else:
bar = maybe_return_int(baz)
Код: Выделить всё
error: Incompatible types in assignment (expression has type "int | None", variable has type "int") [assignment]
Код: Выделить всё
if foo:
bar = 1
else:
bar_maybe_none = maybe_return_int(baz)
assert bar_maybe_none is not None
bar = bar_maybe_none
Код: Выделить всё
if foo:
bar = 1
else:
bar = assert_not_none(maybe_return_int(baz))
Я мог бы использовать приведение, но мне нравится, что Assert фактически выполнит проверку ( по крайней мере, когда утверждения не отключены) и что с утверждением мне не нужно писать тип (в моем реальном коде вводить более многословно, чем просто int).
Подробнее здесь: https://stackoverflow.com/questions/790 ... s-not-none