This coding style bad practise?

Martin P. Hellwig mhellwig at xs4all.nl
Thu May 4 07:01:26 EDT 2006


bruno at modulix wrote:
> Martin P. Hellwig wrote:
>> Bruno Desthuilliers wrote:
>> <cut>
>>
>>> Why not just use the call operator instead ? ie:
>>>
>>>  >>> id = IDGenerator(...)
>>>  >>> id()
>>> 01_20060424_151903_1
>>>  >>> id()
>>> 01_20060424_151905_2
>>>
>> Because of:
>>
>>>>>> id = IDGenerator("01",99)
>>>>>> id()
>>> Traceback (most recent call last):
>>>   File "<pyshell#1>", line 1, in ?
>>>     id()
>>> TypeError: 'IDGenerator' object is not callable
>>>
> 
> Of course - you have to overload the call operator for this to work.
> Just rename IDGenerator.__repr__ to IDGenerator.__call__, and I garantee
> this will work - and will be *much* more cleaner than abusing __repr__.
> 
> 
> 
Thanks! That was the thing I was looking for!

-- 
mph



More information about the Python-list mailing list