"import dateutil.parser" 和 "from dateutil.parser import parse" 有什么区别?

What are the differences between "import dateutil.parser" and "from dateutil.parser import parse"?

更新:

对不起,我的粗心,把parseparser这个词搞混了。这个问题应该删除。但既然有人回答了它并获得了声誉,我就把它留在这里了。再次抱歉。


(import dateutil.parser)

有什么区别
>>> import dateutil.parser
>>> t = dateutil.parser.parser("2012-01-19 17:21:00 BRST")
>>> type(t)
<class 'dateutil.parser.parser'>

和(from dateutil.parser import parse)

>>> from dateutil.parser import parse
>>> t = parse("2012-01-19 17:21:00 BRST")
>>> type(t)
<type 'datetime.datetime'>

谁能解释一下 import dateutil.parserfrom dateutil.parser import parse 之间的区别?

问题是您实际上是在调用 parser 对象的构造函数,而不是 parse 方法。您可以调用 dateutil.parser.parse 或实例化一个 dateutil.parser.parser 对象并调用它的 parse() 方法。

>>> import dateutil.parser
>>> t = dateutil.parser.parse("2012-01-19 17:21:00 BRST")
>>> type(t)
datetime.datetime
>>> t
datetime.datetime(2012, 1, 19, 17, 21)

通常您可以使用 dateutil.parser.parserinfo 对象构造一个 parser 对象,但由于您实际上并未 使用 parser 对象,当它检测到您传递给它的是字符串时,它不会抛出错误。