~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/code-style.txt

  • Committer: Martin Pool
  • Date: 2010-09-13 02:02:39 UTC
  • mto: This revision was merged to the branch mainline in revision 5420.
  • Revision ID: mbp@sourcefrog.net-20100913020239-g9dz278lxitj5378
Text about kwargs from spiv

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
  if getattr(thing, 'name', None) is None
102
102
 
103
103
 
 
104
kwargs
 
105
======
 
106
 
 
107
``**kwargs`` in the prototype of a function should be used sparingly.
 
108
 
 
109
It can be good on higher-order functions that decorate other functions,
 
110
such as ``addCleanup`` or ``assertRaises``.  Otherwise, be careful:
 
111
 
 
112
    If the parameters to a function are a bit complex and might vary over
 
113
    time (e.g. the commit API) then I think what's really called for is an
 
114
    explicit object for the parameters (e.g. I think we should create a
 
115
    CommitParams object), rather than a bag of positional and/or keyword
 
116
    args.  If you have an arbitrary set of keys and values that are
 
117
    different with each use (e.g.  string interpolation inputs) then again
 
118
    I think that should not be mixed in with the regular
 
119
    positional/keyword args, it seems like a different category of thing.
 
120
 
 
121
 
104
122
Module Imports
105
123
==============
106
124