擅长:python、mysql、java
<p>您的问题是,有些代码期望<code>datetime</code>是对<code>datetime</code><em>模块的引用,而其他代码期望<code>datetime</code>是对<code>datetime</code><em>类的引用。很明显,不能两者兼得。</p>
<p>当你这样做时:</p>
<pre><code>from datetime import datetime
import datetime
</code></pre>
<p>首先将<code>datetime</code>设置为对类的引用,然后立即将其设置为对模块的引用。当你反过来做的时候,这是一样的,但它最终是对类的引用。</p>
<p>您需要重命名其中一个引用。例如:</p>
<pre><code>import datetime as dt
from datetime import datetime
</code></pre>
<p>然后可以将引用模块的<code>datetime.xxxx</code>表单中的引用更改为<code>dt.xxxx</code>。</p>
<p>或者只需<code>import datetime</code>并更改所有引用以使用模块名。换言之,如果某物只是说<code>datetime(...)</code>,则需要将该引用更改为<code>datetime.datetime</code>。</p>
<p>不幸的是,Python的库中有很多类似的东西。如果他们遵循自己在<a href="http://www.python.org/dev/peps/pep-0008/" rel="noreferrer">PEP 8</a>中的命名准则,<code>datetime</code>类将被命名为<code>Datetime</code>,并且使用<code>datetime</code>表示模块和<code>Datetime</code>表示类都没有问题。</p>