Chinaunix

标题: python跟在模块后的函数需要带()吗? [打印本页]

作者: 274920831    时间: 2018-01-01 12:10
标题: python跟在模块后的函数需要带()吗?
最近一个脚本在使用datetime模块。
我使用了这么一个写法
import datetime
now_time = datetime.datetime.now()

第二行的第一个datetime是模块名,第二个datetime是函数名,为什么第二个datetime后面不带括号?在我的印像中一般的写法是这样的:

模块.函数()

当我带上括号后,出现如下所示的报错:

[root@redhat pythonscript]# python date.py
Traceback (most recent call last):
  File "date.py", line 21, in <module>
    now_time = datetime.datetime().now()
TypeError: Required argument 'year' (pos 1) not found

意思是说需要一个参数,就是说datetime.datetime(),这个括号里面需要放一个参数吗?

模块.函数的写法格式是怎么样的?


作者: neodreamerus    时间: 2018-01-05 15:16
datetime.datetime 是class 好伐!class也是callable,所以可以带括号,datetime.datetime(...) 返回一个instance
作者: cfwyy    时间: 2018-01-11 13:58
第一个datetime是模块名,第二个datetime是类,不是函数
now()才是类的方法(函数)。
作者: 274920831    时间: 2018-01-11 21:45
回复 3# cfwyy


非常感谢






欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2