Dear 笹原康央,
This sounds interesting. The assignment could be done e.g., like
this.
```python
def assign(variables):
return f'''
for _variable, _value in (lambda {variables}: locals())(
*_values, **_assignments
).items():
exec(f'{{_variable}} = _value')
'''
def name_update(_namespace, /, *_values, **_assignments):
return _namespace.update(locals())
name_update(globals(),
1, 2, *[3,4], **{"b":4}, c=4
)
exec(assign(
"a, *args, b, **kwargs"
))
def f():
name_update(locals(),
1, 2, *[3,4], **{"b":4}, c=4
)
exec(assign(
"a, *args, b, **kwargs"
))
return locals()
```
This is certainly much more writing than an assignment statement. (It
works also with global and nonlocal variables. One should remove the
side effects, which shouldn't be hard with a context manager for
instance. The code is not for assignment to the variable "_variable",
"_value", or "exec". I haven't thought how to make assignment to any
variable possible. Finally, the necessity to call exec requires care.)
Best regards,
Takuo Matsuoka
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/A5YRYAFQNZE6PKTCTX3YEPY5UNGTYDJB/
Code of Conduct: http://python.org/psf/codeofconduct/