|
|
|
|
|
by TwentyPosts
637 days ago
|
|
This is semantically not the same as a sum type (as understood in the sense of Rust, which is afaik the academically accepted way)! Python's `A | B` is a union operation, but in Rust a sum type is always a disjoint union. In Python, if `A = B = None`, then `A | B` has one possible instance. In Rust, this sum type has two possible instances. This might not sound like a big deal, but the semantics are quite different. |
|
def foo(int | None = None) ...
... just means the variable's default value is None in a function definition. But it could be either in an actual function call.