implementing descriptors

Jean-Michel Pichavant jeanmichel at sequans.com
Fri Aug 14 05:45:58 EDT 2009


Emile van Sebille wrote:
> On 8/13/2009 3:17 PM dippim said...
>> I am new to Python and I have a question about descriptors.  If I have
>> a class as written below, is there a way to use descriptors to be
>> certain that the datetime in start is always before the one in end?
>>
>> class foo(object):
>>    def __init__(self,a = None,b = None)
>>       self.start = a
>>       self.end = b
>>
>> from datetime import datetime
>> c = datetime(2009,8,13,6,15,0)
>> d = datetime(2009,8,14,12,0,0)
>> afoo = foo(c,d)
>>
>> For instance, if the following code were run, I would like to instance
>> of foo to switch the start and end times.
>>
>> afoo.start = datetime(2010,8,13,6,15,0)
>>
>> I was thinking of using the __set__ descriptor to catch the assignment
>> and reverse the values if necessary, 
>
> why not...
>
>
> class foo(object):
>    def __init__(self,a = None,b = None)
>       self.start = min(a,b)
>       self.end = max(a,b)
>
>
> Emile
>
or

class foo(object):
    def __init__(self, start, end)
       self.start = start
       self.end = end


Problem solved by design :o)

JM



More information about the Python-list mailing list