[ 
https://issues.apache.org/jira/browse/THRIFT-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659601#action_12659601
 ] 

Will Pierce commented on THRIFT-242:
------------------------------------

Removing the extra dict to thrift constructors will improve both performance 
and readability in my python apps.

Another way to do this might be to use the built in kwargs feature:

def __init__(self, **d):
  # start of constructor
  # initialize self by using d.get(NAME, default) for each NAMEd element? 
(maybe default is None?)

justa thought!



> Python struct constructors are clunky and error-prone
> -----------------------------------------------------
>
>                 Key: THRIFT-242
>                 URL: https://issues.apache.org/jira/browse/THRIFT-242
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (Python)
>            Reporter: Jonathan Ellis
>         Attachments: init.patch
>
>
> The python constructors are clunky and unnecessarily difficult to use.  
> Instead of
> Cls(value1, value2, ...)
> you must write
> Cls({'arg1': value1, 'arg2': value2})
> (or use the dict constructor instead of literal notation).
> Additionally, having the constructor silently do nothing if a non-dict is 
> passed in (an object of the type being created would be another reasonable 
> guess) or if an argument is mis-spelled causes users unnecessary trouble 
> debugging.
> Since removing the d argument entirely would be backwards-incompatible, the 
> attached patch keeps it, but puts real keyword parameters in for 
> forwards-compatibility.  Thus, old code will work with this patch, but new 
> code can be written using keyword args that will still  work when the d 
> argument is removed in a release that allows backwards-incompatibility.  
> (Removing the d argument is desireable because otherwise positional arguments 
> can't be used.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to