python - Python datetime 模块和获取当前时间
问题描述
我是 Python 的初学者,我想做一个简单的项目来说明离圣诞节还有多少时间。首先,我对当前时间有疑问:
import datetime
now = datetime.now()
print(now)`
错误说module 'datetime' has no attribute 'now'
比我通过做来修复它,from datetime import datetime
但比日期的计算产生了一个错误代码:
from datetime import datetime
xmas = datetime.date(2020, 12, 25) - datetime.date.today()
now = datetime.now()
print(now)
错误是:Exception has occurred: TypeError descriptor 'date' requires a 'datetime.datetime' object but received a 'int'
请帮助我。
祝你今天过得愉快!
解决方案
该类datetime
的导入有点令人困惑,因为它位于一个也称为datetime
. 当你这样做时,from datetime import datetime
你正在将类 datetime
导入当前范围并且可以只做datetime.now()
. 如果你只是import datetime
在导入模块 datetime
,那么类就是datetime.datetime
,制作now
方法datetime.datetime.now()
。清如泥?:)
更令人困惑的是,datetime
模块有一个date
类,而datetime
类有一个date
方法。您在代码中将两者混合在一起,当您打算构造一个对象时调用该类的date
方法。既然你这样做了,你根本就没有导入这个类。datetime
date
from datetime import datetime
datetime.date
无论如何,这里是如何解决它:
import datetime
xmas = datetime.date(2020, 12, 25) - datetime.date.today()
now = datetime.datetime.now()
print(now)
请注意,在此代码中,xmas
是一个datetime.timedelta
对象,并且now
是一个datetime.datetime
对象。
你也可以这样做:
from datetime import date, datetime
xmas = date(2020, 12, 25) - date.today()
now = datetime.now()
print(now)
希望并排查看这两个示例有助于阐明模块与类的关系。这全都与不同级别的间接有关——在第一个示例中,import
语句引入了整个模块,并且您的代码需要指定要从中提取哪些类。在第二个示例中,该from ... import
语句将这两个类作为导入的一部分从模块中拉出,因此代码可以通过这些名称直接访问它们。由于名称都非常相似,因此除非您真正了解 import 语句的确切作用,否则您不能依靠名称来知道您正在访问什么样的东西。
推荐阅读
- python - 创建图像表面窗口的精灵表
- c# - 将 JSON 作为对象的一部分传递给 .net 核心 API
- java - 避免基本身份验证的不必要的 Keycloak 会话
- python - ValueError:检查目标时出错:预期dense_24具有形状(1,)但得到形状为(77,)的数组
- html - 在不使用 flask-bootstrap 的情况下使用 wtfroms
- javascript - Javascript - .append 方法有问题
- excel - VBA:根据另一张纸的输入从一张纸中选择多个值
- javascript - React - 通过状态更新管理条件渲染
- mysql - 为什么我不能将变量传递给 MySQL 中的 VARCHAR(str_len)?
- javascript - 反应路由器不适用于现场生产