Then there is no point of type setting. Type setting is a personal preferences and should be respected. Sometimes it saves the day. Sometimes it becomes a headache. Python developers also know and thus have never deprecated type setting.
On Fri, 17 Apr, 2020, 12:40 am Chris Angelico, <ros...@gmail.com> wrote: > On Fri, Apr 17, 2020 at 5:06 AM <dcwhat...@gmail.com> wrote: > > > > On Thursday, April 16, 2020 at 2:37:42 PM UTC-4, Chris Angelico wrote: > > > On Fri, Apr 17, 2020 at 2:13 AM Richard Damon <Richard> wrote: > > > > I get the answer: <class '_io.TextIOWrapper'> > > > > > > > > So that is the name of the type that is returned, at least for that > > > > call. One key thing to note is that it begins with a _, so that type > is > > > > actually an implementation detail, subject to change. > > > > > > This is somewhat true; but when the *module* begins with an > > > underscore, it often means it's a C accelerator for a Python module. > > > You can often find the same thing exposed in a more visible way: > > > > > > >>> import io > > > >>> io.TextIOWrapper > > > <class '_io.TextIOWrapper'> > > > > > > And in that location, it is fully documented: > > > > > > https://docs.python.org/3/library/io.html#io.TextIOWrapper > > > > > > The fact that it comes from the accelerator *is* an internal > > > implementation detail, but the class itself is a public one. > > > > > > That said, though: it is still very much incorrect to type hint in > > > this way. The correct type hint is a generic one: > > > > > > https://docs.python.org/3/library/typing.html#typing.IO > > > > > > And the correct way to encode this on a variable is to let type > > > inference figure it out. You'd use typing.IO or typing.TextIO to > > > annotate a function parameter, perhaps, but don't annotate your > > > variables at all. > > > > > > ChrisA > > > > "And the correct way to encode this on a variable is to let type > > inference figure it out. You'd use typing.IO or typing.TextIO to > > annotate a function parameter, perhaps, but don't annotate your > > variables at all." > > > > I don't know how many times I have to say this, but I've already decided > that the types of variables are going to be part of my code base. Same as > every other language I've programmed in, whether statically or dynamically > typed. > > > > I don't care if it's 'incorrect' for most purposes. I'm doing it, for > my specific purpose. > > > > Oh! Okay then. Just annotate it as "int" - it's no more or less wrong > than any other annotation :) Problem solved! > > ChrisA > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list