导入所需的模块

时间:2012-08-22 08:02:36

标签: python

以下代码按预期工作。但我有两个问题。

# import datetime # does not work
from datetime import datetime
row = ('2002-01-02 00:00:00.3453', 'a')
x = datetime.strptime(row[0], "%Y-%m-%d %H:%M:%S.%f")

1)为什么只导入日期时间不起作用?

2)我如何知道'strptime'方法所针对哪个模块?

>>> help('modules strptime') 

不提供我正在寻找的信息。

4 个答案:

答案 0 :(得分:2)

 datetime

是一个模块。它还有一个名为 datetime 的成员,其成员名为 strptime

答案 1 :(得分:2)

1)它工作正常。但是内部的datetime类是分开的。您需要将其称为datetime.datetime

2)使用General Index。但方法属于对象,而不是模块。

答案 2 :(得分:2)

该方法为datetime.datetime.strptime,当您执行简单的import datetime时,您只导入顶级模块,而不是datetime

你可以这样测试:

>>> import datetime
>>> locals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'dat
etime': <module 'datetime' (built-in)>, '__doc__': None, '__package__': None}


>>> from datetime import datetime
>>> locals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'dat
etime': <type 'datetime.datetime'>, '__doc__': None, '__package__': None}

您可以看到命名空间中有两个不同的对象。

对于第二个问题,Python的内置help()仅适用于那些加载的模块和对象。如果您没有import datetime,则help()无法帮助您。所以最好浏览一下这个文档;并且python strptime上的Google通常会将您置于正确的文档页面。

答案 3 :(得分:1)

你要么:

import datetime
x = datetime.datetime.strptime(row[0], "%Y-%m-%d %H:%M:%S.%f")

或者你这样做:

from datetime import datetime
x = datetime.strptime(row[0], "%Y-%m-%d %H:%M:%S.%f")