On Thu, Sep 17, 2020 at 2:57 PM Brendan Barnwell <brenb...@brenbarn.net> wrote:
> On 2020-09-16 21:52, Dennis Sweeney wrote: > > TL;DR: I propose the following behavior: > > > > >>> s = "She turned me into a newt." > > >>> f"She turned me into a {animal}." = s > > >>> animal > > 'newt' > > > > >>> f"A {animal}?" = s > > Traceback (most recent call last): > > File "<pyshell#2>", line 1, in <module> > > f"A {animal}?" = s > > ValueError: f-string assignment target does not match 'She turned > me into a newt.' > > > > >>> f"{hh:d}:{mm:d}:{ss:d}" = "11:59:59" > > >>> hh, mm, ss > > (11, 59, 59) > A difficulty I have with the idea as presented is this. If I can say this: "{x:d} {y:d} {z:d}" = "1 2 3" ...thus assigning 1, 2, 3 to x, y, z respectively, I might want to also do the same thing this way: q = "{x:d} {y:d} {z:d}" q = "1 2 3" The intent being: save the f-string as a variable, and then use it to assign later. But that can obviously never work because q would just become the string "1 2 3" . We can already do the reverse of this operation, of course: >>> q = "{x:d} {y:d} {z:d}" >>> d = dict(x=1, y=2, z=3) >>> q = "{x:d} {y:d} {z:d}" >>> q.format(**d) '1 2 3' What would be the operation we are inverting, here? Perhaps a better way would be-- rather than assigning the values to the global x,y,z-- create a string method that returns a dictionary with the names and the values inside: >>> q = "{x:d} {y:d} {z:d}" >>> p = "1 2 3" >>> q.parse(p) {'x': 1, 'y': 2, 'z': 3} ..but of course this way we can to the same thing with the literal f-string, similar to what others have proposed: >>> "{x:d} {y:d} {z:d}".parse("1 2 3") {'x': 1, 'y': 2, 'z': 3} --- Ricky. "I've never met a Kentucky man who wasn't either thinking about going home or actually going home." - Happy Chandler
_______________________________________________ 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/VO56CBBET7NOPQ3ELXMGJ2FNOBVVTCGZ/ Code of Conduct: http://python.org/psf/codeofconduct/