Steve Jorgensen wrote:
> Would we want something more general that could deal with cases where the 
> input does not have a 1-to-1 mapping to the field that differ only, perhaps, 
> in type hint? What if we want 1 argument to initializes 2 properties or vice 
> verse, etc.?
That's definitely an improvement that could be made, although I think it would 
require a large amount of changes. I don't know if you had syntax in mind for 
it, or an easy way to represent it, but at least from what I understand you 
would probably a whole new function like `field`, but that handles just that 
functionality, otherwise it would add a lot of arguments to `field`.

Steve Jorgensen wrote:
> In any case, having a new `InitFn` is worth digging into, I don't think it 
> needs to have 2 arguments for type since the type annotation already covers 1 
> of those cases. I think it makes the most sense for the type annotation to 
> apply to the property and the type of the argument to be provided either 
> through an optional argument to `InitFn` or maybe that can be derived from 
> the signature of the function that `InitFn` refers to.
So the use case would be either this:
```py
@dataclass
class Foo:
    x: InitFn[str] = field(converter=chr)
```
where the field `x` has the type string, and the type for the `x` parameter in 
`__init__` would be derrived from `chr`, or optionally:
```py
@dataclass
class Foo:
    x: InitFn[str, int] = field(converter=chr)
```
where you can provide a second type argument that specifies the type parameter 
for `__init__`?
_______________________________________________
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/72ARTBIVL3JVWYHSQHHS5OMVQRTM4L4W/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to