__autoinit__ (Was: Proposal: reducing self.x=x; self.y=y;self.z=z boilerplate code)


F

falcon

Hello python-list,

As I Understood, semantic may be next:

def qwerty(a,a.i,b,b.i,f.j):
pass

Would work like:

def qwerty(anonymous1,anonymous2,anonymous3,anonymous4,anonymous5):
(a,a.i,b,b.i,f.j)=(anonymous1,anonymous2,anonymous3,anonymous4,anonymous5)
del anonymous1
del anonymous2
del anonymous3
del anonymous4
del anonymous5

If so then I like it, because it more explicit than anything other
and it is working right now. I just tryed:
.... (a,a.i,b,b.i,f['i'])=(a1,a2,a3,a4,a5)
.... del a1
.... del a2
.... del a3
.... del a4
.... del a5
.... print (a,a.i,b,b.i,f['i'])(<__main__.Stub instance at 0x00C49530>, 1, <__main__.Stub instance at 0x00C498C8>, 2, 3)

So there are not too much for implement.
Another question - named arguments. How I can assign to them?
May be so:
f={}
def qwerty(a,a.i,f['i']):
print (a,a.i,f['i'])
qwerty(f['i']=3,a=Stub(),a.i=4) - ?

and for __init__:
class MyClass:
def __init__(self,self.i,self.j,self.k):
pass

MyObject = MyClass(self.i=1,self.j=2,self.k=3)

?

or may be there can be an aliase syntax?

class MyClass:
def __init__(self, self.i by i,self.j by j, self.k by k):
pass

MyObject = MyClass(i=1,j=2,k=3)
 
Ad

Advertisements


Top