Yeah it makes sense the default_factory argument in the field object could be 
utilized to support early bound defaults. 

> On 26 Nov 2021, at 10:42 PM, Christopher Barker <python...@gmail.com> wrote:
> 
> dataclasses use Field objects that can be created automatically, but also you 
> can specify them if you need to do something special. And one of the special 
> things you can do is set a default constructor -- I'm sure that could be 
> extended to support early bound defaults.
> 
> -CHB
> 
> 
> On Thu, Nov 25, 2021 at 11:40 PM Chris Angelico <ros...@gmail.com 
> <mailto:ros...@gmail.com>> wrote:
> On Fri, Nov 26, 2021 at 6:22 PM Abdulla Al Kathiri
> <alkathiri.abdu...@gmail.com <mailto:alkathiri.abdu...@gmail.com>> wrote:
> >
> > Chris,
> >
> > Will we able to use late-bound arguments in dataclass when it’s creating 
> > the __init__ function?
> >
> > @dataclass
> > class C:
> >     x: int
> >     y: int
> >     ls: list[int] => [x, y]
> >
> 
> With that syntax, no, because there's no object that can be stored in
> an annotation dictionary that would represent the code construct to
> create that effect.
> 
> But the __init__ function is constructed with exec(), and that means
> that, in theory, dataclasses._field_init could be enhanced to have
> some way to indicate this - or, possibly, to *always* use late-bound
> defaults, since it appears to use sentinels for everything.
> 
> I don't know enough about the workings of dataclasses.dataclass to be
> able to say for sure, but a cursory glance does suggest that, in some
> way, this should be possible. It may require stringifying the default
> though.
> 
> ls: list[int] = "[x, y]"
> 
> ChrisA
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org 
> <mailto:python-ideas@python.org>
> To unsubscribe send an email to python-ideas-le...@python.org 
> <mailto:python-ideas-le...@python.org>
> https://mail.python.org/mailman3/lists/python-ideas.python.org/ 
> <https://mail.python.org/mailman3/lists/python-ideas.python.org/>
> Message archived at 
> https://mail.python.org/archives/list/python-ideas@python.org/message/YVLHVQK27TN6M5OKZKXJGUEZX47BRHGK/
>  
> <https://mail.python.org/archives/list/python-ideas@python.org/message/YVLHVQK27TN6M5OKZKXJGUEZX47BRHGK/>
> Code of Conduct: http://python.org/psf/codeofconduct/ 
> <http://python.org/psf/codeofconduct/>
> 
> 
> -- 
> Christopher Barker, PhD (Chris)
> 
> Python Language Consulting
>   - Teaching
>   - Scientific Software Development
>   - Desktop GUI and Web Development
>   - wxPython, numpy, scipy, Cython
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at 
> https://mail.python.org/archives/list/python-ideas@python.org/message/KTBG6LBRD5NPKV2JK7BGO7FG34INNP5J/
> Code of Conduct: http://python.org/psf/codeofconduct/

_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/SKRVOMI2OYYW4432RQE5XQSLSEZHKTV4/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to