On 2019-10-21 10:44, gedizgu...@gmail.com wrote:
m and n are lists or dicts or enumerates or classes or anything it can be 
assigned like following:

instead of :

m.a=n.a;
m.b=n.b;
m.c=n.c;
...

I suggest:

a,b,c of m to n ;

Interesting.  I also saw this type of redundancy in my code. Instead of making a function, like `copy_attrs()` I changed my APIs to accept over-specified attributes.  Instead, I would write

m = n

... or simply use `n` where `m` was expected.  Yes, `n` would have more attributes than needed, but that is solved by ensuring the receiver can gracefully reject the extra attributes; I decorate pedantic functions that complain about extra parameters.

In your other example, I would write:

adiv=document.createElement("div")
adiv.style = comp

There is the problem of unfortunate namespace overlap; where the destination expects some attribute X and the source has an attribute of the same name, X,  but the value is wrong.  But this is not a large problem: You can plan your attribute names on a program-wide scale so that the same attribute name means the same thing across your whole program, and different attribute names mean different things across your whole program.  This does not require too much forward planning, rather more refactoring as you rename parameters to match, or differ, as needed.  This is what the ES6 structuring/destructuring is  promoting. Consider a function that uses `adiv`:

drawBox = (adiv) => {
    const {x, y, height, width} = adiv.style;
}

the extra attributes of `comp` are ignored; specific attribute copying is not required.


_______________________________________________
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/FY24FAGNQAGTA5CRZCI2WWEGF5RQPPPD/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to