On Tue, 27 Feb 2018 09:15:12 +1100, Ben Finney wrote:

> Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> writes:
> 
>> I have a class with a large number of parameters (about ten) assigned
>> in `__init__`. The class then has a number of methods which accept
>> *optional* arguments with the same names as the constructor/initialiser
>> parameters. If those arguments are None, the defaults are taken from
>> the instance attributes.
> 
> The catalogue in Refactoring identifies what you need:
> 
>     Introduce Parameter Object
> 
>     You have a group of parameters that naturally go together.
> 
>     Replace them with an object.
> 
>     <URL:https://refactoring.com/catalog/introduceParameterObject.html>

Interesting, I'll certainly have a good read of that, thanks. But I fear 
I mislead you: you seem to have understood that either all the parameters 
are None, or none of them are, whereas what I meant was that they can 
vary independently of each other.

So it isn't enough to check whether the Parameter object is None, I'd 
need to check each field within the object.

On the other hand, at least I could put the logic of that inside the 
Parameter object, instead of repeating it everywhere it is needed.

On the gripping hand, I *think* that means the caller is responsible for 
creating and populating the Parameter object, instead of just passing 
keyword arguments... let me think about that one.

Either way, thanks for the suggestion.


-- 
Steve

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to