[Python-ideas] Augmented assignment syntax for objects.
Juancarlo Añez
apalala at gmail.com
Mon May 1 09:23:58 EDT 2017
On Thu, Apr 27, 2017 at 7:28 PM, Steven D'Aprano <steve at pearwood.info>
wrote:
> > In my experience, what Python is lacking is a way to declare attributes
> > outside of the constructor. Take a look at how it's done in C#, Swisft,
> or
> > Go.
>
> Since you apparently already know how they do it, how about telling us
> (1) how they do it, and (2) *why* they do it?
>
They make attribure declarations at the class declaration scope be instance
attributes. Python makes that kind of declaration class attributes (statics
in some other languages).
This is the spec for C#: https://goo.gl/FeBTuy
The reason *why* they do it that way is because declaring instance
fields/variables is much more frequent than declaring class ones.
> > Object attributes outside of the constructor would solve things more
> > relevant than the vertical space used when assigning constructor
> parameters
> > to attributes.
>
> Solve which things?
>
Instance attributes may be defined with or without default values without
having to pass them as arguments to or mention them in a constructor.
> > For example, multiple inheritance is well designed in
> > Python, except that it often requires constructors with no parameters,
> > which leads to objects with no default attributes.
>
> Can you elaborate?
A class hierarchy in which there is multiple inheritance requires
constructors with no arguments. This is typical: https://goo.gl/l54tx7
I don't know which would be the best syntax, but it would be convenient to
be able to declare something like:
class A:
var a = 'a'
And have "a" be an instance attribute.
--
Juancarlo *Añez*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170501/3cbaf89b/attachment.html>
More information about the Python-ideas
mailing list