Given that it's now presumably preferred spelling is `str | None` in Python 3.10, why would we not seek to deprecate `Optional[str]` instead of inventing a replacement?
On Thu, 2022-06-30 at 17:15 +0000, nveric...@gmail.com wrote: > I am aware this is clarified in the Python documentation for the > typing module but I and others have thought the naming of Optional is > still quite confusing by itself. > > "Note that this is not the same concept as an optional argument, > which is one that has a default. An optional argument with a default > does not require the Optional qualifier on its type annotation just > because it is optional." - typing.Optional docs > > Google defines optional as this, "available to be chosen but not > obligatory." > > Pretend we have a function like this: > def test_func(param: Optional[str]) -> None: > ... > > The argument param is typed as Optional[str] meaning Union[str, None] > or str | None. Optional here if we follow the definition above, > basically means it can be str but not required or obligated to be > that type. See the problem with the naming? This is a function where > param can be None or str, not just it can be str but not obligated. > Some interpretations may think optional means left to one's choice as > well. The docs even have to clarify the use of Optional with typing > because of this confusion. > > I believe this has been proposed before (not sure) but something like > Nullable or Noneable (not sure about naming) would make much more > sense in the context of typing. > def test_func(param: Noneable[str]) -> None: > ... > > It also would work and still make sense if there is a default value > for the argument: > def test_func(param: Noneable[str] = None) -> None: > ... > > def test_func(param: Noneable[str] = "hello world") -> None: > ... > _______________________________________________ > Python-Dev mailing list -- python-dev@python.org > To unsubscribe send an email to python-dev-le...@python.org > https://mail.python.org/mailman3/lists/python-dev.python.org/ > Message archived at > https://mail.python.org/archives/list/python-dev@python.org/message/QT7RJSDMWKTGB6PNVMGZ2NY2D4PT75Y7/ > Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/CQQ6O4HBDA46ASYEG2M7BF3ZE26KSB5N/ Code of Conduct: http://python.org/psf/codeofconduct/