python-import - 使用“导入”与“从 X 导入”
问题描述
我正在使用 Head First Python,并且有一个示例:
from datetime import datetime
odds = [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19,
21, 23, 25, 27, 29, 31, 33, 35, 37, 39,
41, 43, 45, 47, 49, 51, 53, 55, 57, 59 ]
right_this_minute = datetime.today().minute
#if right_this_minute in odds:
#print("This minute seems a little odd.")
#else:
#print("Not an odd minute.")
现在,如果我用“import datetime”代替“from datetime import datetime”,解释器会给我一个错误:
right_this_minute = datetime.today().minute AttributeError: 模块 'datetime' 没有属性 'today'
我不明白为什么“从日期时间导入日期时间”有效,但“导入日期时间”却没有。我已经经历了一些关于这个的stackoverflow问答,但我显然错过了一些东西。
任何建议将不胜感激。
解决方案
首先,有两个“事物”称为datetime
:模块和模块定义的类。
您使用的两个导入选项具有不同的行为。
当你运行时:
from datetime import datetime
第一个是模块,第二个是类。datetime
Python从模块中只导入一个类 ( )。从那时起,Python 就会理解datetime
引用类。
当你运行时:
import datetime
您导入整个模块,因此 Python 将理解datetime
为模块。要访问类datetime
,您需要使用datetime.datetime
.
推荐阅读
- python - 使用 Pandas 将数据从 CSV 格式传输到具有大量字段名的 JSON
- javascript - 在Javascript中解构函数参数
- android - 链接领域以响应本机后,应用程序不断停止
- html - 如何使用Angular.js根据列值对表格进行排序
- angular - Angular 7从firebase获取图像
- magento - PHP 致命错误:未捕获的错误:调用 public_html/lib/Varien/Simplexml/Config.php:510 中的未定义函数 simplexml_load_string()
- ios - 每台机器上缺少应用程序标识符和访问钥匙串组
- javascript - nodeJS - ioredis NPM 模块 - 订阅者事件有问题
- c# - 即使调试设置为 true,asp.net mvc 应用程序在生产中也会超时。谁可以帮我这个事
- python - 如何使图像插值到子图大小 matplotlib