[Tutor] could somebody please explain...

Clayton Kirkwood crk at godblessthe.us
Wed Oct 1 18:10:13 CEST 2014



!-----Original Message-----
!From: Tutor [mailto:tutor-bounces+crk=godblessthe.us at python.org] On
!Behalf Of Steven D'Aprano
!Sent: Tuesday, September 30, 2014 7:34 PM
!To: tutor at python.org
!Subject: Re: [Tutor] could somebody please explain...
!
!On Tue, Sep 30, 2014 at 03:54:42PM -0700, Clayton Kirkwood wrote:
!
!> Also, I found something that I can't get my mind around. It is part of
!> the time/date protocols. I've not seen it anywhere else.
!>
!> Datetime(year=blah, blah, blah).date/time()
!>
!> datetime(2013,3,6).date() #returns.
!> datetime.date(2013,3,6)
!>
!> datetime(2013,3,6).time() #returns.
!> datetime.time(0,0)
!>
!> This is one of the weirder things I've run across. Is this
!> allowed/needed in other functions/classes, or is it a datetime thing
!only?
!
!I'm afraid I have no clue what part of this you consider weird. Is it
!that the date() and time() methods don't take an argument? That's quite
!common:
!
!py> "Hello".upper()
!'Hello'
!
!
!Or is it that the result of calling date() or time() methods isn't the
!same type of thing as what you started with? Again, that's very common:
!
!py> {1: 'a', 2: 'b'}.keys()  # Start with a dict, returns a list.
![1, 2]
!
!
!Start with a datetime object. The date() method returns the date part
!alone, so it returns a date object. The time() method returns the time
!part alone, so it returns a time object.
!
!Or maybe you're weirded out by the leading "datetime" in the name.
!That's unfortunate, but not weird. The datetime module contains at least
!three classes. When you print the class, they show the module name. It
!is unfortunate that the module name happens to have the same name as one
!of those classes:
!
!py> datetime
!<module 'datetime' from '/usr/local/lib/python2.7/lib-
!dynload/datetime.so'>
!py> datetime.date
!<type 'datetime.date'>
!py> datetime.time
!<type 'datetime.time'>
!py> datetime.datetime
!<type 'datetime.datetime'>
!
!
!So when you see something like this:
!
!py> d = datetime.datetime(2000, 5, 22, 11, 5, 27) d
!datetime.datetime(2000, 5, 22, 11, 5, 27)
!
!the "datetime." means the module, and the "datetime(...)" means the
!class with its various arguments.
!
!Is this common? Sadly, there are quite a few modules where the main
!function or class in the module has the same, or very similar, name:
!
!dis.dis
!bisect.bisect
!decimal.Decimal
!fractions.Fraction
!
!etc.
!
!
!(P.S. it is better to raise each independent question in a separate
!email.)
!

The part in question is the date components in the parentheses of the first
datetime.

Clayton Kirkwood
!
!
!--
!Steven
!_______________________________________________
!Tutor maillist  -  Tutor at python.org
!To unsubscribe or change subscription options:
!https://mail.python.org/mailman/listinfo/tutor





More information about the Tutor mailing list