|
|
|
|
|
by dragonwriter
394 days ago
|
|
> For example if you declare a type hint on a function parameter as `foo: int = None` you will get a type error. It says that a parameter of type int can't have a None value. This is false. No, it is correct. The value None is not with the domain of type int, a parameter that can take the value None does not in fact have type int. > This yields no value because when you say `= None` you are saying that this is an optional argument. When you provide any default value, you are making the argument optional, but that's an orthogonal concern to the Optional[T] type, which doesn't mean “optional argument", it is simply a more convenient way of expressing Union[T, None], though with the modern type syntax, T | U is generally more convenient than either Union[T, U] or Optional[T] for U=None. |
|