concept of creating structures in python

Joe Strout joe at
Fri Dec 12 17:07:21 CET 2008

On Dec 12, 2008, at 9:00 AM, Steve Holden wrote:

>> Change the default value of ds_obj here to None.  Otherwise, you will
>> certainly confuse yourself (there would be just one default object
>> shared among all instances).
> Joe missed a piece out here. If you change the signature of your
> D.__init__() to read
>     def  __init__(self, dataName='ND', index = 0, ele_obj=None):
> then you need to insert the following code at the top of the method:
>        if ele_obj is None:
>            ele_obj = E()

Yes, if you really need to guarantee that ele_obj is not None, then  
this is the way to do it.

Of course this would mean that you can't get a None ele_obj even by  
passing it in explicitly as the parameter value -- if you need to  
support that as well, then the solution is a little more complex.   
Perhaps best in that case would be to just not give ele_obj any  
default value at all, so it becomes a required parameter.

- Joe

More information about the Python-list mailing list