Joshua Kordani wrote:
Greetings all!
So I'm reading through the manual and I get to the point where it
talks about packages and how to import them. namely section 6.4 in
the tutorial. I wont repeat the section here, but I want to
understand whats going on in the following (as typed on my computer).
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit
(Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> dir(datetime)
['MAXYEAR', 'MINYEAR', '__doc__', '__name__', '__package__', 'date',
'datetime',
'datetime_CAPI', 'time', 'timedelta', 'tzinfo']
>>> dir(datetime.datetime)
['__add__', '__class__', '__delattr__', '__doc__', '__eq__',
'__format__', '__ge
__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__',
'__lt__', '
__ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__',
'__repr__', '__rs
ub__', '__setattr__', '__sizeof__', '__str__', '__sub__',
'__subclasshook__', 'a
stimezone', 'combine', 'ctime', 'date', 'day', 'dst', 'fromordinal',
'fromtimest
amp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max',
'microsecond', 'm
in', 'minute', 'month', 'now', 'replace', 'resolution', 'second',
'strftime', 's
trptime', 'time', 'timetuple', 'timetz', 'today', 'toordinal',
'tzinfo', 'tzname
', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple',
'weekday', 'year']
>>> from datetime.datetime import today
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named datetime
>>>
so dir on datetime shows symbols date, time, datetime,etc
dir on datetime shows today, now, etc
lets say for arguments sake that I want to just import the today
function, according to the documentation, the line should be:
from datetime.datetime import today.
as you can see, that didn't work. why not?
Just a little confusion on your part.
datetime is a module, so you can import it (as you did) and objects from it
datetime.datetime is a type (like a class is a type) not a module so you
cannot import from it.
So you can
import datetime
and you can
from datetime import <whatever>
but that's all the further you can go with imports.
Some of the confusion may be from having a class (well actually it's a
type) with the same name as its module. This is now considered bad form.
You might achieve the effect you were you were trying for like this:
import datetime
today = datetime.datetime.today
or
from datetime import datetime
today = datetime.today
Then you'll be able to call
today()
at any time.
Gary Herron
Josh
--
http://mail.python.org/mailman/listinfo/python-list