E
Eelco Hoogendoorn
Throwing an idea for a PEP out there:
It strikes me that the def func(*args, **kwargs) syntax is rather
unpytonic. It certainly did not have that 'for line in file' pythonic
obviousness for me as a beginner. Plus, asterikses are impossible to
google for, so finding out what exactly they do more or less forces you
to write a forum post about it.
A more readable form occurred to me, which also happens to be more
flexible, and which I think is fully compatible with the syntax of the
language:
def func(parg, list(args), dict(kwargs))
Perhaps this is considered abuse of notation; dict(kwargs) already has a
meaning rather different from the one we try to give it here; but then
again the context (being inside a function definition) is unique and
easily recognizable.
An added advantage would be the possibility of using subclasses of dict
and list as well; imagine how much more beautiful a lot of code would be
if one could say
def func(attrdict(kwargs))
Problems im still wrestling with: the same syntax could not be used when
calling a function; that lack of symmetry would make things more
confusing, not less.
Thoughts?
It strikes me that the def func(*args, **kwargs) syntax is rather
unpytonic. It certainly did not have that 'for line in file' pythonic
obviousness for me as a beginner. Plus, asterikses are impossible to
google for, so finding out what exactly they do more or less forces you
to write a forum post about it.
A more readable form occurred to me, which also happens to be more
flexible, and which I think is fully compatible with the syntax of the
language:
def func(parg, list(args), dict(kwargs))
Perhaps this is considered abuse of notation; dict(kwargs) already has a
meaning rather different from the one we try to give it here; but then
again the context (being inside a function definition) is unique and
easily recognizable.
An added advantage would be the possibility of using subclasses of dict
and list as well; imagine how much more beautiful a lot of code would be
if one could say
def func(attrdict(kwargs))
Problems im still wrestling with: the same syntax could not be used when
calling a function; that lack of symmetry would make things more
confusing, not less.
Thoughts?