Proposal: reducing self.x=x; self.y=y; self.z=z boilerplate code
Andrea Griffini
agriff at tin.it
Sun Jul 3 05:36:10 EDT 2005
On Sat, 2 Jul 2005 03:04:09 -0700 (PDT), "Ralf W. Grosse-Kunstleve"
<rwgk at yahoo.com> wrote:
>Hi fellow Python coders,
>
>I often find myself writing::
>
> class grouping:
>
> def __init__(self, x, y, z):
> self.x = x
> self.y = y
> self.z = z
> # real code, finally
>
>This becomes a serious nuisance in complex applications with long
>argument lists, especially if long variable names are essential for
>managing the complexity. Therefore I propose that Python includes
>built-in support for reducing the ``self.x=x`` clutter.
With some help from new-style classes you can get more than
just removing the "self.x = x" clutter.
I'm not an expert of these low-level python tricks, but
you can download from http://www.gripho.it/objs.py a
small example that allows you to write
class MyClass(Object):
x = Float(default = 0.0, max = 1E20)
y = Float(min = 1.0)
and you can get in addition of redudancy removal also
parameter checking. You can also have an __init__
method that gets called with attributes already set up.
HTH
Andrea
More information about the Python-list
mailing list