Re: Re: Re: Re: Any possible type alias that can also set a default value for a function arg?
On Thu, 19 Oct 2023 at 19:34, Karsten Hilbert wrote: > > > > As per my recent foray into abusing existence-checking for Singleton > > > assurance > > > along such lines as > > > > > > >>> try: self.initialized > > > >>> except AttributeError: print('first instantiation'); self.initialized > > > >>> = True > > > > > > and then changing that to > > > > > > >>> try: self.initialized:bool > > > > But that's not equivalent code. > > I learned as much (RHS vs LHS). > > But it did not _intuitively_ resonate with the sentiment > "type annotation does not change the running of code". Unfortunately, that simply means that your intuition was wrong. It doesn't change my prior statement. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Aw: Re: Re: Re: Any possible type alias that can also set a default value for a function arg?
> > As per my recent foray into abusing existence-checking for Singleton > > assurance > > along such lines as > > > > >>> try: self.initialized > > >>> except AttributeError: print('first instantiation'); self.initialized = > > >>> True > > > > and then changing that to > > > > >>> try: self.initialized:bool > > But that's not equivalent code. I learned as much (RHS vs LHS). But it did not _intuitively_ resonate with the sentiment "type annotation does not change the running of code". Karsten -- https://mail.python.org/mailman/listinfo/python-list
Re: Re: Re: Any possible type alias that can also set a default value for a function arg?
On Thu, 19 Oct 2023 at 18:25, Karsten Hilbert wrote: > > > > > Fundamentally no, at least not without some shenanigans. Type hints do > > > > not affect the regular running of the code, > > > > > > Except when they do ;-) > > > > > > ... depending on what counts as (valid) code ... > > > > > > In Python a distinction can be made between "runnable" and "valid" :-D > > > > > > > Can you give a counter-example? > > As per my recent foray into abusing existence-checking for Singleton assurance > along such lines as > > >>> try: self.initialized > >>> except AttributeError: print('first instantiation'); self.initialized = > >>> True > > and then changing that to > > >>> try: self.initialized:bool But that's not equivalent code. You might just as well say that the ellipsis here suddenly changes the code: self.initialized self.initialized = ... These are completely different, and they behave differently. Both are valid, but they mean different things. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
Aw: Re: Re: Any possible type alias that can also set a default value for a function arg?
> > > Fundamentally no, at least not without some shenanigans. Type hints do > > > not affect the regular running of the code, > > > > Except when they do ;-) > > > > ... depending on what counts as (valid) code ... > > > > In Python a distinction can be made between "runnable" and "valid" :-D > > > > Can you give a counter-example? As per my recent foray into abusing existence-checking for Singleton assurance along such lines as >>> try: self.initialized >>> except AttributeError: print('first instantiation'); self.initialized = True and then changing that to >>> try: self.initialized:bool Karsten -- https://mail.python.org/mailman/listinfo/python-list
Re: Re: Any possible type alias that can also set a default value for a function arg?
On Thu, 19 Oct 2023 at 18:04, Karsten Hilbert wrote: > > > > or something like that. Basically, any way to avoid writing `= None` over > > > and over again. > > > > Fundamentally no, at least not without some shenanigans. Type hints do > > not affect the regular running of the code, > > Except when they do ;-) > > ... depending on what counts as (valid) code ... > > In Python a distinction can be made between "runnable" and "valid" :-D > Can you give a counter-example? I mean, yes, any code can be written that inspects the annotations at runtime and makes whatever changes it likes, but that's part of what I described as "shenanigans". ChrisA -- https://mail.python.org/mailman/listinfo/python-list