[Python-checkins] r82218 - sandbox/branches/py3k-datetime/datetime.py

alexander.belopolsky python-checkins at python.org
Fri Jun 25 18:41:13 CEST 2010


Author: alexander.belopolsky
Date: Fri Jun 25 18:41:12 2010
New Revision: 82218

Log:
Use @property decorator to create read-only field accessors

Modified:
   sandbox/branches/py3k-datetime/datetime.py

Modified: sandbox/branches/py3k-datetime/datetime.py
==============================================================================
--- sandbox/branches/py3k-datetime/datetime.py	(original)
+++ sandbox/branches/py3k-datetime/datetime.py	Fri Jun 25 18:41:12 2010
@@ -452,12 +452,25 @@
         return s
 
     def total_seconds(self):
+        """Total seconds in the duration."""
         return ((self.days * 86400 + self.seconds)*10**6 + 
-                self.microseconds).__truediv__(10**6)
-    days = property(lambda self: self.__days, doc="days")
-    seconds = property(lambda self: self.__seconds, doc="seconds")
-    microseconds = property(lambda self: self.__microseconds,
-                            doc="microseconds")
+                self.microseconds) / 10**6
+
+    # Read-only field accessors
+    @property
+    def days(self):
+        """days"""
+        return self.__days
+
+    @property
+    def seconds(self):
+        """seconds"""
+        return self.__seconds
+
+    @property
+    def microseconds(self):
+        """microseconds"""
+        return self.__microseconds
 
     def __add__(self, other):
         if isinstance(other, timedelta):
@@ -728,10 +741,20 @@
     __str__ = isoformat
 
     # Read-only field accessors
-    year = property(lambda self: self.__year,
-                    doc="year (%d-%d)" % (MINYEAR, MAXYEAR))
-    month = property(lambda self: self.__month, doc="month (1-12)")
-    day = property(lambda self: self.__day, doc="day (1-31)")
+    @property
+    def year(self):
+        """year (1-9999)"""
+        return self.__year
+
+    @property
+    def month(self):
+        """month (1-12)"""
+        return self.__month
+
+    @property
+    def day(self):
+        """day (1-31)"""
+        return self.__day
 
     # Standard conversions, __cmp__, __hash__ (and helpers)
 
@@ -951,8 +974,6 @@
         else:
             return (self.__class__, args, state)
 
-_tzinfo_class = tzinfo   # so functions w/ args named "tzinfo" can get at it
-
 class time:
     """Time with time zone.
 
@@ -1001,12 +1022,30 @@
         return self
 
     # Read-only field accessors
-    hour = property(lambda self: self.__hour, doc="hour (0-23)")
-    minute = property(lambda self: self.__minute, doc="minute (0-59)")
-    second = property(lambda self: self.__second, doc="second (0-59)")
-    microsecond = property(lambda self: self.__microsecond,
-                           doc="microsecond (0-999999)")
-    tzinfo = property(lambda self: self._tzinfo, doc="timezone info object")
+    @property
+    def hour(self):
+        """hour (0-23)"""
+        return self.__hour
+
+    @property
+    def minute(self): 
+        """minute (0-59)"""
+        return self.__minute
+
+    @property
+    def second(self):
+        """second (0-59)"""
+        return self.__second
+    
+    @property
+    def microsecond(self):
+        """microsecond (0-999999)"""
+        return self.__microsecond
+
+    @property
+    def tzinfo(self):
+        """timezone info object"""
+        return self._tzinfo
 
     # Standard conversions, __hash__ (and helpers)
 
@@ -1268,12 +1307,30 @@
         return self
 
     # Read-only field accessors
-    hour = property(lambda self: self.__hour, doc="hour (0-23)")
-    minute = property(lambda self: self.__minute, doc="minute (0-59)")
-    second = property(lambda self: self.__second, doc="second (0-59)")
-    microsecond = property(lambda self: self.__microsecond,
-                           doc="microsecond (0-999999)")
-    tzinfo = property(lambda self: self._tzinfo, doc="timezone info object")
+    @property
+    def hour(self):
+        """hour (0-23)"""
+        return self.__hour
+
+    @property
+    def minute(self): 
+        """minute (0-59)"""
+        return self.__minute
+
+    @property
+    def second(self):
+        """second (0-59)"""
+        return self.__second
+    
+    @property
+    def microsecond(self):
+        """microsecond (0-999999)"""
+        return self.__microsecond
+
+    @property
+    def tzinfo(self):
+        """timezone info object"""
+        return self._tzinfo
 
     @classmethod
     def fromtimestamp(cls, t, tz=None):


More information about the Python-checkins mailing list