Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 生成日期列表时出错_Python - Fatal编程技术网

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)

我有一个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)
   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)