老师,关于datetime对象有一点不太明白

老师,关于datetime对象有一点不太明白

https://img1.sycdn.imooc.com//climg/6239dabe08a09cdd24511210.jpg

from datetime import datetime   //表示从datetime包中导入了datetime模块


date = datetime.now() //表示调用了datetime模块中的now()函数,并将函数执行的结果赋值给date变量


str_date = date.strtime('%Y-%m-%d %H:%M:%S')

老师主要是这里的date.strtime这里没太明白, datetime.now()这个函数的结果为什么直接返回的是一个对象呢,对象不是应该先实例化才可以调用里面的函数吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕凡 2022-03-23 10:12:57

同学,你好!

1、python中可以使用@classmethod来声明一个类中的方法为类方法,可以不用实例化,直接类名.方法名( )来调用,同学可以复习一下:https://class.imooc.com/lesson/2094#mid=49711 ;

2、datetime.now( )函数返回的是经过模块内部的代码处理的时间对象,可以通过对象名调用里边的方法,同学如果感兴趣,可以按ctrl+鼠标点击函数名进入函数内部,祝学习愉快~

  • 提问者 慕田峪6467393 #1

    老师,我可以理解为,datetime.now()这个类函数,再返回当前时间的同时,也对datetime这个类进行了实例化?

    2022-03-23 10:25:14
  • 好帮手慕凡 回复 提问者 慕田峪6467393 #2

    同学,你好!

    可以理解为datetime.now( )这个函数,返回的是一个类的实例化对象,如下图:看一下源码,一般情况下源码中返回的是cls(y, m, d, hh, mm, ss, us, tz),cls等同于类本身,等于返回了一个用cls实例化的一个对象

    https://img1.sycdn.imooc.com//climg/623a8c5b092b851606730187.jpg

    祝学习愉快~

    2022-03-23 10:59:26
  • 提问者 慕田峪6467393 回复 好帮手慕凡 #3

    这下明白了,谢谢老师,老师如果想知道类名直接调用类函数的结果是什么类型,是只能通过type("接收结果的变量名")才能知道吗?

    2022-03-23 14:09:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师