On 2017-04-26 18:46, Mike Miller wrote:

On 2017-04-26 04:12, Brice PARENT wrote:
Why not simply do this :

class MyClass:
    def _set_multiple(self, **kwargs):
        for key, value in kwargs.items():
            setattr(self, key, value)

    def __init__(self, a, b, c):
        self._set_multiple(a=a, b=b, c=c)

If the goal is to not have to type out argument names three times (in DRY
fashion), this doesn't quite fit the bill.

An alternative is to use a special comment, for example:

class MyClass:
    def __init__(self, a, b, c):
        #> a, b, c

And then use, say, a Python script to expand it to:

class MyClass:
    def __init__(self, a, b, c):
        #> a, b, c
        self.a = a
        self.b = b
        self.c = c
        #<

The Python script could be called from the editor.

If you want to add or remove an argument, edit the comment and then run the script again. (Hopefully it'll be smart enough to make the necessary changes).
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to