Python 生成日期列表时出错
我有一个python脚本Python 生成日期列表时出错,python,Python,我有一个python脚本 import urllib2 from bs4 import BeautifulSoup import requests import csv from datetime import datetime from datetime import date from datetime import timedelta def generateDateList(date,month,year): today = date(year, month, date)
import urllib2
from bs4 import BeautifulSoup
import requests
import csv
from datetime import datetime
from datetime import date
from datetime import timedelta
def generateDateList(date,month,year):
today = date(year, month, date)
arrDates = []
for i in range(0,5):
arrDates.append(datetime.strftime(today + timedelta(days=i),"%d-%m-%y"))
return arrDates
print generateDateList(4,12,2017)
但我得到了这个错误-
Traceback (most recent call last):
File "test.py", line 17, in <module>
print generateDateList(4,12,2017)
File "test.py", line 11, in generateDateList
today = date(year, month, date)
TypeError: 'int' object is not callable
回溯(最近一次呼叫最后一次):
文件“test.py”,第17行,在
打印生成的远程列表(4,122017)
generateDateList中第11行的文件“test.py”
今天=日期(年、月、日)
TypeError:“int”对象不可调用
为什么会失败?我用值替换了这个函数,它成功了。是否应再次将函数输入转换为整数?此行-
def generateDateList(日期、月份、年份):
第一个参数date
的名称将顶部导入的名称date
隐藏起来。您需要在函数中将参数重命名为类似于day
如前所述,
date实际上是传递给函数的整数,调用它会导致出现错误。此行-def generatedatedTelist(日期、月份、年份):
第一个参数date
的名称将顶部导入的名称date
隐藏起来。您需要在函数中将参数重命名为类似于day
如前所述,date
实际上是传递给函数的整数,调用它会导致出现错误。有两个选项
选项1(导入日期时间):
选项2(将日期参数重命名为天):
问题是您有一个与date()函数同名的参数。两个选项
选项1(导入日期时间):
选项2(将日期参数重命名为天):
问题在于您有一个与date()函数同名的参数。您已经用本地date
变量覆盖了全局date
。不要那样做。为了更加确定,只需导入datetime
,然后在需要的地方使用datetime.date
、datetime.datetime
和datetime.timedelta
。您已经用本地date
变量覆盖了全局date
。不要那样做。更确切地说,只需导入datetime
,然后在需要的地方使用datetime.date
、datetime.datetime
和datetime.timedelta
。这会不时发生,不用担心。)这种情况时有发生,不用担心。:)
import datetime
def generateDateList(date, month, year):
today = datetime.date(year, month, date)
arrDates = []
for i in range(0,5):
arrDates.append(datetime.datetime.strftime(today + datetime.timedelta(days=i),"%d-%m-%y"))
return arrDates
print generateDateList(4, 12, 2017)
from datetime import datetime
from datetime import date
from datetime import timedelta
def generateDateList(day,month,year):
today = date(year, month, day)
arrDates = []
for i in range(0,5):
arrDates.append(datetime.strftime(today + timedelta(days=i),"%d-%m-%y"))
return arrDates
print generateDateList(4,12,2017)