implementing descriptors

Emile van Sebille emile at fenx.com
Fri Aug 14 01:57:21 CEST 2009


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




More information about the Python-list mailing list