为什么Python同时拥有一个名为datetime的模块和类?

时间:2014-10-09 21:22:19

标签: python datetime

我经常对我是否从datetime导入datetime,或者我是否刚导入datetime感到困惑。如果我在某些代码中看到正在使用datetime,我无法快速判断它是模块日期时间还是类日期时间。很烦人。我该怎么办?

此外,PEP 8 clearly states:"班级名称通常应使用CapWords惯例。"

如果datetime模块中的类名为DateTimeDateTime,则会有所帮助。

由于这个问题被搁置了,因为"不清楚你要问的是什么,我已经决定编辑和写更多。说实话,我也不确定我要问的是什么 - 我只是发现我一再被这个问题绊倒并希望得到反馈。我想我确实得到了一些非常有用的建议,特别是来自tdelaney:

  

我个人import datetime as dt并使用dt.datetime等...因为   我希望保留原始的类名,同时尽量减少混淆   使用模块名称。

1 个答案:

答案 0 :(得分:3)

拥有更一致的命名可能会更好。但是标准的Python库以及经典的Python和#34;内置的"类型既不符合PEP-8,也不符合任何严格的一致性模型。所有标准类型(例如intfloatstrlistdict)都是小写的。 dict的某些扩展名为CapWorded,如OrderedDict。但它的伴侣defaultdict不是。有许多数据类型与其模块名称相同,例如array.arraydatetime.datetime。 Python 3的重大改写移动了一些模块,但它没有在很大程度上同化或重新组织类名。

所以......只要学会忍受它。这是一个历史事实,不太可能很快改变。