注册 登录
编程论坛 Python论坛

如何访问datetime的属性

书生牛犊 发布于 2020-03-05 21:29, 2083 次点击
程序代码:
from datetime import datetime
import sys

def get_month_range(date):
    #
    print(date.year())   //报错:TypeError: 'int' object is not callable
    print(date.month())
    print(date.day())
    FirstDay = datetime(date.year(),date.month(),1)
    NextDay =  datetime(date.year(),date.month()+1,1)
   
    return ( FirstDay.timestamp(),NextDay.timestamp() )


while True:
    line = sys.stdin.readline()
    line = line.strip()
    if line == '':
        break
    date = datetime.strptime(line, "%Y-%m-%d")
    print(get_month_range(dete))


初学Python,get_month_range(date)函数体里,调用datetime对象的year属性应该怎么写才是??
6 回复
#2
wmf20142020-03-05 21:35
print(get_month_range(dete))
#3
书生牛犊2020-03-05 21:51
TypeError: 'int' object is not callable

这句话翻译过来应该是   ‘int’类型对象不可被调用。

从百度上面草草翻了翻,基本都是   变量名覆盖冲突了   
所以我也试着get_month_range()函数体里date变量名改成a  b   这类无意义变量名,,还是一样报错。
另外,除了get_month_range()体内的代码,其他都是习题平台copy过来的答题模板,所以应该是没问题的。

问题应该是出在   date.year()      我是想要访问datetime对象里的year()属性

----------------------------------
再次访问https://docs.,注意到,这些属性并不需要写括号。。。
只有本站会员才能查看附件,请 登录




[此贴子已经被作者于2020-3-5 21:52编辑过]

#4
书生牛犊2020-03-05 21:53
以下是正常可运行的代码
程序代码:
from datetime import datetime
import sys

def get_month_range(date):
    FirstDay = datetime(date.year,date.month,1)
    NextDay =  datetime(date.year,date.month+1,1)   
    return (FirstDay.timestamp() , NextDay.timestamp() )


while True:
    line = sys.stdin.readline()
    line = line.strip()
    if line == '':
        break
    date = datetime.strptime(line, "%Y-%m-%d")
    print(get_month_range(date))





#5
深秋20152020-03-05 22:01
date.year 本身是一个属性,是int数据,不是方法,所以后面不能带括号
#6
深秋20152020-03-05 22:01
同样后面的date.month,date.day都不能带括号
#7
shan3262022-08-29 19:40
谢谢分享
1