[Python-Dev] __autoinit__ (Was: Proposal: reducing self.x=x; self.y=y; self.z=z boilerplate code)
falcon
falcon at intercable.ru
Sun Jul 31 19:45:26 CEST 2005
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:
>>> class Stub:
... pass
>>> def qwer(a1,a2,a3,a4,a5):
... (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'])
>>> f={}
>>> qwer(Stub(),1,Stub(),2,3)
(<__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)
--
Sokolov Yura
falcon at intercable.ru
More information about the Python-Dev
mailing list